我的VC++6.0运行老出错,该得正数的老得负数,代码都对,就是结果老错,不知道是不是兼容问题

#include "stdio.h"void main(){ int x,n, s; printf("n="); scanf("%d",&n); x=1; while(x<=n) { s=s+x; x=x+1; }
printf("1+2+...+%d=%d\n",n,s);
}

我帮你改了一下,有注释,你看看:


#include "stdio.h"

void main()

{

 int x,n, s = 0;// 变量使用之前要初始化,否则会是一个随机值

 printf("n=");

 scanf("%d",&n);

 x=1;

 while(x<=n)

 {

  s=s+x;

  x=x+1;

 }

 printf("1+2+...+%d=%d\n",n,s);

}


运行结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-05
void main()
{
int x,n, s;
printf("n=");
scanf("%d",&n);
x=1;
while(x<=n)
{
s=s+x;
x=x+1;
}
printf("1+2+...+%d=%d\n",n,s);
}
谁说代码没错的。真不知道你怎么编译过的。
S=S+X;
你S都没初始化就能用S+X了?
要先初始化了S才行。
第2个回答  2013-03-05
因为你得s没有初始化,所以 s=s+x这个值不确定,很可能会溢出~
你再int x,n,s;后面加一句 s=0;试试
第3个回答  2013-03-05
C语言不会像java等一样帮你初始化变量,s在定义时没有初始化,会分配一个随机值(这个值是s占用的内存空间原来的值)。你在 int x,n, s; 后面添加 s=0;
相似回答