Program w C , mały problem

boroboroboro
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 21 mar 2010, o 10:29
Płeć: Mężczyzna
Lokalizacja: Wrocław

Program w C , mały problem

Post autor: boroboroboro »

Program działa ale chce zrobić tak aby liczby sie nie powtarzały ale nie wiem jak czy ktoś może pomóc ? dzieki z góry




#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[])
{
int tablica[3][4];
int i,j,k,l;
int powtorzenie;
srand(time(0));
for(i=0;i<3;)
{
for(j=0;j<4;)
{
powtorzenie=0;
tablica[j]=rand()%10;
for(k=0;k<i;k++)
{
for(l=0;l<j;l++)
{
if(tablica[j] == tablica[k][l])
powtorzenie=1;
}

}
if(powtorzenie==0)
{
j++;
}
}
i++;

}
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%d",tablica[j]);
}
printf("
");
}
system("PAUSE");
return 0;
}
Dakurels
Użytkownik
Użytkownik
Posty: 291
Rejestracja: 16 paź 2009, o 18:31
Płeć: Mężczyzna
Lokalizacja: Kraków
Pomógł: 55 razy

Program w C , mały problem

Post autor: Dakurels »

for(k=0;k<i;k++)
for(l=0;l<j;l++)
W tym fragmencie masz błąd. Przypuśćmy, że jesteśmy teraz w elemencie o indeksie [2][2]. W takim razie sprawdzimy tylko elementy: [0][0],[1][0],[1][1],[0][1].

Zmieniłbym to na:

Kod: Zaznacz cały

int a=4;
for(k=0;k<=i;k++)
{
  if (k==i)
     a=i;
for(l=0;l<a;l++)
Xitami

Program w C , mały problem

Post autor: Xitami »

boroboroboro pisze:

Kod: Zaznacz cały

...
int tablica[3][4];
...
tablica[i][j]=rand()%10;
...
Masz 12 kratek a chcesz bez powtórzeń zmieścić w nich 10 wartości.
To się chyba nie da.

Kod: Zaznacz cały

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[]) {
	int tablica[3][4];
	int i,j;

	srand(time(0));
	i=0; 
	while(i<12){
		do{
			tablica[i/4][i%4]=rand()%12;
			j=0;
			while (tablica[i/4][i%4]!=tablica[j/4][j%4])
				j++;
		} while(j<i);
		i++;
	}
	
	//zamiast "tablica[i/4][i%4]" można napisać
	// "((int*)tablica)[i]"
	
	for(i=0;i<3;i++) {
		for(j=0;j<4;j++)
			printf("%2d ",tablica[i][j]);
		printf("
");
	}
	system("PAUSE");
	return 0;
}
ODPOWIEDZ