帮忙解释一下这里的类型强制转换的问题
#include"stdio.h"main()
{long int i;
int w,q,b,s,g,a;
printf("please input i:\n");
scanf("%ld",&i);
if(i>9999)
a=5;
else if(i>999)
a=4;
else if(a>99)
a=3;
else if(a>9)
a=2;
else
a=1;
w=i/10000;
q=(int)(i-w*10000)/1000;\*帮忙看下这里的(INT)没有它运行错误码,但"/"是 整除符号,它运算后应该就是一个整数呀.不懂呀*\
b=(int)(i-w*10000-q*1000)/100;
s=(int)(i-w*10000-q*1000-b*100)/10;
g=(int)(i-w*10000-q*1000-b*100-s*10);
switch(a)
{case 5:printf("%d %d %d %d %d",w,q,b,s,g);break;
case 4:printf("%d %d %d %d",q,b,s,g);break;
case 3:printf("%d %d %d",b,s,g);break;
case 2:printf("%d %d",s,g);break;
case 1:printf("%d",g);break;
}getch();
getch();
}
----------------解决方案--------------------------------------------------------
这个程序错误太多了,
不过对于那几句本身来说,加不加强转结果是一样的
----------------解决方案--------------------------------------------------------
#include <stdio.h>
int main(void)
{
long n;
while (scanf("%ld",&n)!=EOF)
{
int i;
char num[20];
for (i=0;n;num[i++]=n%10,n/=10);
printf("%d",num[--i]);
while (i--)
printf(" %d",num[i]);
printf("\n");
}
return 0;
}
----------------解决方案--------------------------------------------------------