哪里的问题????????????????????????????????????

来源:百度知道 编辑:UC知道 时间:2024/06/20 17:46:07
#include<stdio.h>
void main()
{
int s=0,x,y,z,i;
for(i=1;i<=5;i++)
{
s=s*10+3;
}
printf("%d",s);
getch();
}

结果为什么-32203而不是33333,想得到33333应怎么改,是溢出了吗
我用的是WIN TC

你把程序这样改一下就可以了:
#include<stdio.h>
void main()
{
long int s=0;
int x,y,z,i;
for(i=1;i<=5;i++)
{
s=s*10+3;
}
printf("%ld",s);
getch();
}

我运行改了的程序结果就是33333,问题是数据有溢出

不会吧,你用的几位的机子啊?

按照这个程序就应该是33333

换个编译器看看啊,这程序没有问题啊!

c语言中int占用两个字节的内存空间,两个字节是16位,这样一来有符号的int变量最大也才是2的15次方-1=32767,33333超过的最大值就益处了

int 默认是带符号的整型变量:范围-32768~32767