c语言数据类型异常,请牛人解答

2024-11-25 03:43:10
推荐回答(5个)
回答1:

我看了下(我现在不方便编译…没条件…),除了num应该换成long以为…似乎没得错…但是你这个程序写得复杂了…因为你只用反序输出每位的内容…所以…(我只写了个函数…没编译的…如果有错,应该好改)
void func(long num)
{
if(num==0)
printf("0");
else
while(num>0)
printf("%ld ", num%10), num/=10;
printf("\n");
}
这样可以反序输出了…如果你还想指明哪一位,可用数组将英文单词装好,然后3用脚标输出便OK

回答2:

int 在不同编译系统中长度不一样,如在 TURBO C 中就是 2B,最大数为32768,在 Visual C++ 中为 4B ,最大值为 2 的 32 次方减1。所以你的错误应该是在 Turbo C 环境中数值越界。故可修改为 long 型。

回答3:

int num; 改为long num;

scanf("%d", &num); 改为scanf("%ld", &num);
因为你要求的输入的数范围是0~999999,你定义一个int 型的num它最大为32767啊!当你输入的数大于32767不就发生错误了吗?

回答4:

恶 num改成 long int试试

回答5:

bu会