Tekil Mesaj gösterimi
Alt 29/11/09, 16:42 PM   #1 (permalink)
ekshe
Çöm
Durum: Offline
Üyelik tarihi: Jul 2009
Konular: 1
Mesajlar: 1
Tecrübe Gücü: 0
Tecrübe Puanı: 10
ekshe is on a distinguished road
Standart random fonksiyonuna bir örnek



/*
4 basamaklı, basamakları yinelenmeyen rastgele (random) sayı üreten fonksiyon.
*/
#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');

system("pause");
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;
}

Konu ekshe tarafından (29/11/09 Saat 16:44 PM ) değiştirilmiştir.
  Alıntı ile Cevapla
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171