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;
}
Program w C , mały problem
-
- Użytkownik
- Posty: 3
- Rejestracja: 21 mar 2010, o 10:29
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
-
- 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
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].for(k=0;k<i;k++)
for(l=0;l<j;l++)
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++)
Program w C , mały problem
Masz 12 kratek a chcesz bez powtórzeń zmieścić w nich 10 wartości.boroboroboro pisze:Kod: Zaznacz cały
... int tablica[3][4]; ... tablica[i][j]=rand()%10; ...
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;
}