一个C语言的小程序程序,帮我看看错哪了,运行后,输入完我要的数字,按回车后就程序停止了!

#include<stdio.h>
void main(void){ int i,b[50],sum=0,count=0; char c; printf("实现从键盘上输入任意个数相加的加法器\n"); printf("请输入需要运算的加数吧:\n"); do { scanf("%d",&b[i]); count++; sum+=b[i]; i++; scanf("%c",&c); }while(c!='\n'); printf("你总共输入了%d个数\n",count); printf("\n"); for(i=0;i<count;i++) { printf("你输入的第%d个数是:%d\n",i+1,b[i]); } printf("\n"); printf("具体结果是:\n"); printf("("); for(i=0;i<count-1;i++) { printf("%d",b[i]); printf("+"); } printf("%d",b[count-1]); printf(")="); printf("%d",sum); printf("\n"); }

int i,b[50],sum=0,count=0;

改成
int i=0,b[50],sum=0,count=0;

即可。小小笔误,i未初始化为0追问

这个i再后面都有给他赋初值啊!!

追答

第一次运行到scanf("%d",&b[i]);这一句的时候,i尚未被赋值。这个i后面只有给他进行++操作,但初始值并不确定。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-09
i 没有初始化.
造成越界
第2个回答  2012-11-09
i没有初始化为0,修改如下:

int i,b[50],sum=0,count=0;

改为
int i=0,b[50],sum=0,count=0;
第3个回答  2012-11-09
这个c的程序没关系吧,是vc和win7不兼容
相似回答