,学c语言这么久,还是第一次碰到这种有关问题的有关问题,在晚上也没搜到

呵呵,学c语言这么久,还是第一次碰到这种问题的问题,在晚上也没搜到
主函数如下,编译工具是gcc
本程序是一个用于科学计算函数的实现,运行后屏幕输出为test=nan
由于数据比较大,可能问题出在数据类型上,我还在查原因,还请各位提提意见,谢谢!

int   main(){
int   test;
double   result=0;
int   s1,s2,n,X;

s1=2373;s2=437;n=2283*1141;X=1;

result=1-sumary(s1,s2,n,X);
if(result> 0)fprintf(stderr, "smaller ");

FILE   *fp;
fp=fopen( "test.txt ", "w+ ");//运行后文本中也是test=nan
printf( "test=%e\n ",result);//运行后屏幕输出为test=nan
fprintf(fp, "test=%e\n ",result);
fclose(fp);
return   0;
}


------解决方案--------------------
n=2283*1141
==============================
n会溢出,int类型的范围是-32768----32767
------解决方案--------------------
sumary呢?
n=2283*1141这个不会溢出的,int值是32位的。
------解决方案--------------------
nan是非法浮点数,至于为什么是nan应该和你的sumary()函数有关,你不贴怎么看...
------解决方案--------------------
n会不会溢出要看你的编译环境
用sizeof(int)看下是4还是2,若是2就益处了
------解决方案--------------------
gcc 支持的平台至少都是 32位的,不会溢出。
检查 sumary 的实现。