醉拳八哥 发表于 2015-6-3 12:09:03

请教一个问题

#include <stdio.h>
long int factoorial (long int );
long int square(long int );
void main ()
{
    long int a=2,b=3,sum;

        sum=factoorial(a) +factoorial(b);
        printf("%ld\n",sum);
}
long int factoorial (long int c1)
{
long int c,d,e;
c=square(c1);
d=1;
for(e=c;e>0;e--)
{
   d=e*d;
}
return (d);
}
long int square(long int c2)
{
    long int f;
        f=c2*c2;
        return(f);

}


这是我根据小甲鱼的视频题目编写的一个程序,但是我在定义变量的时候不知道该定义成int,还是long int?我觉得在不溢出的情况下尽量定义短字节的,这样可以节省空间。那么问题来了:我怎么知道我的数据在运行中溢出了?比如上面程序是计算2平方的阶乘加上3平方的阶乘,我可能会在调试程序的时候换成别的数,比如100,200;那么这时候心里面没底了,不知道会不会在执行的过程中溢出?虽然我知道long int 最大-32768到32767,可是我这时候不知道当前运算的值大概在不在这个范围?

ANDES 发表于 2015-6-3 12:15:41

这就根据经验来定的,没人可以准确的告诉你什么时候该用int和long,你只能自己评估下你需要的用到的类型。

醉拳八哥 发表于 2015-6-3 13:36:31

鱼c论坛就是给力,每次各种问题均能迅速获取答案,谢谢小甲鱼{:1_1:}

ANDES 发表于 2015-6-3 19:44:12

醉拳八哥 发表于 2015-6-3 13:36
鱼c论坛就是给力,每次各种问题均能迅速获取答案,谢谢小甲鱼

予人玫瑰,手有余香。

ygyuuu 发表于 2015-6-4 11:56:14

{:1_1:}
页: [1]
查看完整版本: 请教一个问题