求助数字相加问题
小弟初学C程序如下:
# include<stdio.h>
int main()
{
long int x=1 ,y;
for(y=1;y<=1000;++y)
{
x = x*y;
}
printf("%ld\n",x);
return 0;
}
如果把y<=1000换成10就可以显示,1000和100都显示0,是不是值太大long int储存不下啊,我用的是VC6.0,用不了long long int 求大神解疑
你把数据类型声明大一些就行了,而且要想知道一个数据类型有多大的话,你可以在vc6.0上用sizeof();这个函数查看,具体是:假如说要查看整型的话就是:printf( "%d", sizeof(int) );就可以得到它占几个字节;然后就是一个字节是8位二进制,如果是一个字节并且是有符号的数的话,它的范围就是:-2^8~2^8这个范围!如果是无符号数的话,就是:0~2^8这个范围! 用int储存阶乘到13就已经崩溃了,long int 只不过是int的2倍,你想想就知道了。给你一个查看数据是否超值得办法。添加一个头文件#include <limits.h>,ULONG_MAX就是无符号long int 的最大值,你可以输出他来看下最大值是多少 我只想说,楼主怎么这么抠啊,才给一分{:5_90:} Qyears 发表于 2014-4-2 10:23 static/image/common/back.gif
我只想说,楼主怎么这么抠啊,才给一分
刚刚进来没分啊 綉氣 发表于 2014-4-2 18:23 static/image/common/back.gif
刚刚进来没分啊
:titter:加油加油!
页:
[1]