请教一个问题
#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,可是我这时候不知道当前运算的值大概在不在这个范围?
这就根据经验来定的,没人可以准确的告诉你什么时候该用int和long,你只能自己评估下你需要的用到的类型。 鱼c论坛就是给力,每次各种问题均能迅速获取答案,谢谢小甲鱼{:1_1:} 醉拳八哥 发表于 2015-6-3 13:36
鱼c论坛就是给力,每次各种问题均能迅速获取答案,谢谢小甲鱼
予人玫瑰,手有余香。 {:1_1:}
页:
[1]