綉氣 发表于 2014-4-1 19:59:22

求助数字相加问题

小弟初学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 求大神解疑

青玄 发表于 2014-4-1 19:59:23

你把数据类型声明大一些就行了,而且要想知道一个数据类型有多大的话,你可以在vc6.0上用sizeof();这个函数查看,具体是:假如说要查看整型的话就是:printf( "%d", sizeof(int) );就可以得到它占几个字节;然后就是一个字节是8位二进制,如果是一个字节并且是有符号的数的话,它的范围就是:-2^8~2^8这个范围!如果是无符号数的话,就是:0~2^8这个范围!

sidfate 发表于 2014-4-1 20:54:55

用int储存阶乘到13就已经崩溃了,long int 只不过是int的2倍,你想想就知道了。给你一个查看数据是否超值得办法。添加一个头文件#include <limits.h>,ULONG_MAX就是无符号long int 的最大值,你可以输出他来看下最大值是多少

Qyears 发表于 2014-4-2 10:23:42

我只想说,楼主怎么这么抠啊,才给一分{:5_90:}

綉氣 发表于 2014-4-2 18:23:16

Qyears 发表于 2014-4-2 10:23 static/image/common/back.gif
我只想说,楼主怎么这么抠啊,才给一分

刚刚进来没分啊

Qyears 发表于 2014-4-8 23:29:48

綉氣 发表于 2014-4-2 18:23 static/image/common/back.gif
刚刚进来没分啊

:titter:加油加油!
页: [1]
查看完整版本: 求助数字相加问题