Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2009, 15:54   #1
Expected }
Новичок
Джуниор
 
Регистрация: 08.01.2009
Сообщений: 2
По умолчанию Поиск одинаковых элементов

Здравствуйте, знаком с с++ пол года, решил написать прогу, которая гененирует судоку. Столкнулся с некоторыми проблемами:
1) Генерирование массива 3х3 случайными, неповторяющимеся числами.
Остановился на варианте заполнения массива случайными числами, нахождением одинаковых эл-ов, и замены их на опять же таки случайное число. Это делать до тех пор, пока массив заполнен разными числами. Очень громоздко, но по-иному - никак. В принципе, так тоже не очень работоспособно:

Код:
#include <vcl.h>
#pragma hdrstop
#include <stdlib.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int c,i,k,p,l,a[3][3],j;
randomize();
for(i=0;i<3;i++)
 for(j=0;j<3;j++)
  a[i][j]=random(9)+1;

for(c=0;c<900;c++)  //пробывал do-while'ом, не смог
for(i=0;i<3;i++)
 {
  l=i;
  for(j=0;j<3;j++)
   do
     {
     if(j==2)
      {
      for(k=1;k<3;k++)
       if(a[i][j]==a[l][j+k])
        a[l][j+k]=random(9)+1;
        l++;
      }
     else
      for(k=1;k<3;k++)
       if(a[i][j]==a[l][j+k])
       a[l][j+k]=random(9)+1;
       l++;
      }
   while(l<3);
 }

for(i=0;i<3;i++)
 for(j=0;j<3;j++)
 A->Cells[j][i]=IntToStr(a[i][j]);  //A->Name of StringGrid
}
//-------------------------------------------------------------------------
и проблема номер
2) Проверка на наличие одинаковых эл-ов в строках и столбцах одноврмеенно(!). По-отдельности работает, но вместе- нет:

Код:
#include <vcl.h>
#pragma hdrstop
#include <stdlib.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//-------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i,j,k,c,l,a[9][9];
randomize();
for(i=0;i<9;i++)
for(j=0;j<9;j++)
 a[i][j]=random(9)+1;

////////////////////////////////////////
//////////////////Строки////////////////
////////////////////////////////////////
for(c=0;c<1000;c++) for(i=0;i<9;i++)
   for(j=0;j<8;j++)
    {
    k=j+1;
    do
     {
      if(a[i][j]==a[i][k])
       a[i][k]=random(9)+1;
      k++;
     }
     while(k<9);
   }

///////////////////////////////////////////
//////////////////Столбцы//////////////////
///////////////////////////////////////////
 for(c=0;c<1000;c++)
  for(j=0;j<9;j++)
   for(i=0;i<8;i++)
    {
    k=i+1;
    do
     {
      if(a[i][j]==a[k][j])
       a[k][j]=random(9)+1;
      k++;
     }
     while(k<9);
    }


for(i=0;i<9;i++)
for(j=0;j<9;j++)
 A->Cells[j][i]=IntToStr(a[i][j]);
}
//-------------------------------------------------------------------------
Буду признателен за помощь, заранее спасибо

Последний раз редактировалось Expected }; 08.01.2009 в 16:07.
Expected } вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск одинаковых строк Demitriy Microsoft Office Excel 45 26.07.2010 08:50
Поиск одинаковых слов (Delphi 7) hooch Помощь студентам 4 27.11.2008 20:14
Нахождение двух одинаковых элементов в массиве Stas))) Помощь студентам 4 01.06.2007 12:23
Поиск одинаковых строк в файле ATL Помощь студентам 13 02.05.2007 01:05