特定の数字が整数内に出現する頻度を数えたい。次のコードがあります。
int main()
{
printf ("Put numbers\n");
int cislo;
int s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;
while(scanf("%d",&cislo)==1){
if (cislo<0)
printf ("Cislo %d, je zaporne, takove neberu", cislo);
continue;
}
s0=s1=s2=s3=s4=s5=s6=s7=s8=s9=0;
do{
(cislo/=10);
switch (cislo%10){
case 0: ++s0; break;
case 1: ++s1; break;
case 2: ++s2; break;
case 3: ++s3; break;
case 4: ++s4; break;
case 5: ++s5; break;
case 6: ++s6; break;
case 7: ++s7; break;
case 8: ++s8; break;
case 9: ++s9; break;
}
}while (cislo>0);
printf ("Zadane cislo se sklada z cislic: \n\n 0 ... %dx \n 1 ... %dx \n 2 ... %dx \n 3 ... %dx \n 4 ... %dx \n 5 ... %dx \n 6 ... %dx \n 7 ... %dx \n 8 ... %dx \n 9 ... %dx \n",s0,s1,s2,s3,s4,s5,s6,s7,s8,s9);
return 0;
}
どのように機能する必要がありますか:
番号を入力: 1111111111 番号: 1111111111 含む: 0 ... 0x 1 ... 10倍 2 ... 0x 3 ... 0x 4 ... 0x 5 ... 0x 6 ... 0x 7 ... 0x 8 ... 0x 9 ... 0x
実際の仕組み:
番号を入力: 1111111111 番号: 1111111111 含む: 0 ... 1x 1 ... 9倍 2 ... 0x 3 ... 0x 4 ... 0x 5 ... 0x 6 ... 0x 7 ... 0x 8 ... 0x 9 ... 0x
誰かが理由を知っていますか?