一到c程序问题(所有分数了)
题目是输入一个0到99999之间的数,1:求出它有几位;2:打印出每一位
<br>3:按逆序打印出各位数字,例如原数为321,应输出123.
<br>整个程序如下,出现了一个问题当输入的数大于40000时就会出现错误,在0到39999之间都正常,请高手指点下。
<br>main()
<br>{ long int num;
<br> int place,ten_thousand,thousand,huandred,ten,indiv;
<br> printf("please input the number(0~99999):n");
<br>
<br> scanf("%ld",&num);
<br> if(num>9999)place=5;
<br> else if(num>999)place=4;
<br> else if(num>99)place=3;
<br> else if(num>9)place=2;
<br> else place=1;
<br> printf("place=%d n",place);
<br>
<br>
<br>
<br> ten_thousand=num/10000;
<br> thousand=(num-ten_thousand*10000)/1000;
<br> huandred=(num-ten_thousand*10000-thousand*1000)/100;
<br> ten=(num-ten_thousand*10000-thousand*1000-huandred*100)/10;
<br> indiv=num-ten_thousand*10000-thousand*1000-huandred*100-ten*10;
<br>
<br> switch(place)
<br> {
<br> case 5:printf("%d,%d,%d,%d,%dn",ten_thousand,thousand,huandred,ten,indiv);
<br> printf("%d%d%d%d%d",indiv,ten,huandred,thousand,ten_thousand);
<br> break;
<br>
<br> case 4:printf("%d,%d,%d,%dn",thousand,huandred,ten,indiv);
<br> printf("%d%d%d%d",indiv,ten,huandred,thousand);
<br> break;
<br> case 3:printf("%d,%d,%dn",huandred,ten,indiv);
<br> printf("%d%d%d",indiv,ten,huandred);
<br> break;
<br> case 2:printf("%d,%dn",ten,indiv);
<br> printf("%d%d",indiv,ten);
<br> break;
<br> case 1:printf("%dn",indiv);
<br> printf("%d",indiv);
<br> break;
<br> }
<br>
<br>
<br>}

- 这是一篇来自百度知道的问题
|