PDA

Orijinalini görmek için tıklayınız

eXTReMe Tracker
: C dilinde 7. 4 basamaklı, basamakları yinelenmeyen rastgele sayılar


em3
12-01-2007, 12:11 PM
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define SIZE 50

int getRandomNumber(void);
int isValid(int number);

int main()
{
int a[SIZE];
int i;

srand((unsigned)time(NULL));

for (i = 0; i < SIZE; i++)
while (!isValid(a[i] = getRandomNumber()))
;
for (i = 0; i < SIZE; i++)
printf("%d ", a[i]);
putchar('\n');

return 0;
}

int getRandomNumber()
{
return rand() % 9000 + 1000;
}

int isValid(int number)
{
int temp, i, j;

for (i = 0; i < 10; i++) {
j = 0;
temp = number;
while (temp > 0) {
if (temp % 10 == i)
j++;
if (j > 1)
return 0;
temp /= 10;
}
}
return 1;
}