MEKAN.SIZ YÖNETİCİ
| Konu: kaynak kodlar Çarş. Eyl. 26 2007, 01:02 | |
| Açıklama: 4 basamaklı, basamakları yinelenmeyen rasgele (random) sayı üreten fonksiyon.
Ekran Çıktısı: 1054 9318 9710 3721 2901 3749 6803 8463 4523 5890 5492 3268 3417 7150 5376 1204 7548 3945 2035 4216 3740 6172 6713 7630 5697 6208 8506 7014 3817 4812 3571 5327 1647 2480 7309 3752 4632 1684 2501 5869 8451 9683 1580 9801 5419 4970 3561 5241 2743 5863
Kaynak Kod: #include <stdio.h> #include <stdlib.h> #include <time.h>
#define SIZE 50
int rand_number(void); int is_valid(int number);
int main(void) { int i, a[SIZE];
srand(time(NULL));
for (i = 0; i < SIZE; i++) while (!is_valid(a[i] = rand_number())) ; for (i = 0; i < SIZE; i++) printf("%d ", a[i]); putchar('\n');
return 0; } /************************************************* **************** 1000 ile 9999 arasinda rasgele sayi ureten fonksiyon ************************************************** ***************/ int rand_number(void) { return rand() % 9000 + 1000; } /************************************************* *************** kendisine gonderilen sayinin kosula uygun, basamaklari tekrar etmeyen bir sayi olup olmadigini test eden fonksiyon. uygunsa 1 degilse 0 degirini uretiyor. ************************************************** ***************/ int is_valid(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; } | |
|