C dilinde rastgele olarak 9 basamaklı sayı tutmak mümkün mü?
rand ile bir kaç deneme yaptım bir türlü 5 haneyi geçemedim.
1 ile 9 arasında 9 tane sayı tutup bunları birleştirmek istedim. Ama bir yerde takıldım. Şoyleki izlediğim yol da:
1. sayiyı 10^0 (1)
2. sayiyı 10^1 (10)
3. sayiyı 10^2 (100)
4. sayiyı 10^3 (1000)
5. sayiyı 10^4 (10000)
6. sayiyı 10^5 (100000)
7. sayiyı 10^6 (1000000)
8. sayiyı 10^7 (10000000)
9. sayiyı 10^9 (100000000)
işlemini yaptırıp hepsini toplayarak 9 haneli bir rakam elde etmeye çalıştım.
Örnek verirsek
1.sayı : 5 ---> 5 x 1=5
2.sayı : 6 ---> 6 x 10=60
3.sayı : 4 ---> 4 x 100=400
4.sayı : 1 ---> 1 x 1000=1000
5.sayı : 3 ---> 3 x 10000=30000
6.sayı : 5 ---> 5 x 100000=500000
7.sayı : 8 ---> 8 x 1000000=8000000
8.sayı : 9 ---> 9 x 1000000=90000000
9.sayı : 2 ---> 2 x 10000000=200000000
+____________________________________
TOPLAM:------> 298531465
planlanan bu idi fakat garip bir durum ile karşılaştım. sayılar 1 ile 9 arasında tam sayı olarak sanırım tutulmuyordu. Çnkü her sayının 10^

ile çarpıldığında beklediğimden farklı sonuçlar gözlemledim. Bu konu da yardımlarınızı bekliyorum.
Program kodu ve çıktısı:
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "time.h"
int main() {
double a = 0;
int i,j;
srand(time(NULL));
for (i = 0; i < 10; i++) {
j=pow(10,i);
bu:
a = round(rand() % 10);
a=a*j;
if(a==0)
{goto bu;}
printf("%d------->%f\n",i, a);
}
getch();
return 0;
}Çıktı: