当前位置: 代码迷 >> C语言 >> 帮忙解释一下这里的类型强制转换的问题
  详细解决方案

帮忙解释一下这里的类型强制转换的问题

热度:95   发布时间:2008-05-07 20:21:37.0
帮忙解释一下这里的类型强制转换的问题
#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;
}
----------------解决方案--------------------------------------------------------