SOS 一个小问题 结果超过4万就不对了 帮帮忙

sy6666 2008-10-01 09:49:12
有一个in.txt文件,里边每一行是一个不超过5位的整数,有N行,要求程序显示全部整数相加的和 我这程序当结果超过4万就溢出了 大虾 帮着改改 第一次写这种程序 好像没有长整型数组这种东西吧

请写出C得源代码 谢谢

#include <stdio.h>
#include <conio.h>
#define MAXNUM 2000
int xx[MAXNUM];
long int j=0;
int ReadDat(void)
{ FILE *fp;int i=0;
if((fp = fopen("in.txt", "r")) == NULL) return 1 ;
while(!feof(fp)){fscanf(fp, "%d,", &xx[i++]);}
fclose(fp);return 0;}
void main()
{int i,a;
for(i=0;i<MAXNUM;i++)xx[i]=0;
if(ReadDat()) {printf("TYPE IN.DAT ERROR!\007\n");return;}
for(a=0;a<MAXNUM;a++){j=j+xx[a];}
printf("INT=%d",j);getchar();}
...全文
67 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sy6666 2008-10-01
  • 打赏
  • 举报
回复
按大虾程序 测试以下数据in.txt内为
10000
10000
10000
10000
仍然溢出 5555


#include <stdio.h>
#include <conio.h>

int xx;
long sum=0;
long int j=0;
long ReadDat(void)
{ FILE *fp;int i=0;
if((fp = fopen("in.txt", "r")) == NULL) return -1 ;
while(!feof(fp)){fscanf(fp, "%d,", &xx);sum+=xx;}
fclose(fp);return sum;}
void main()
{

long sum=ReadDat();
if(sum!=-1)
printf("INT=%d",sum);getchar();
}
gjlstc 2008-10-01
  • 打赏
  • 举报
回复
是不是要把//改成/**/ 呵呵
sy6666 2008-10-01
  • 打赏
  • 举报
回复
fscanf 函数好像只能将结果放到一个数组里 大虾给的程序TC 2.0编译通不过 5555
kkndciapp 2008-10-01
  • 打赏
  • 举报
回复
#include <stdio.h> 
#include <conio.h>
//#define MAXNUM 2000
int xx;
long sum=0;
long int j=0;
long ReadDat(void)
{ FILE *fp;int i=0;
if((fp = fopen("in.txt", "r")) == NULL) return -1 ;
while(!feof(fp)){fscanf(fp, "%d,", &xx]);sum+=xx;}
fclose(fp);return sum;}
void main()
{//int i,a;
//for(i=0;i <MAXNUM;i++)xx[i]=0;
//if(ReadDat()) {printf("TYPE IN.DAT ERROR!\007\n");return;}
//for(a=0;a <MAXNUM;a++){j=j+xx[a];}
long sum=ReadDat();
if(sum!=-1)
printf("INT=%d",sum);getchar();
}
kkndciapp 2008-10-01
  • 打赏
  • 举报
回复
没有必要用数组,读出一个直接加入到和里面:long sum; sum+=读入的那个数据;
gjlstc 2008-10-01
  • 打赏
  • 举报
回复
兄弟 我用vs2005编译的 没有溢出也~ 你换一个编译器试试?

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧