请教C语言简单问题,谢谢好心人

来源:百度知道 编辑:UC知道 时间:2024/07/01 15:08:17
求100以内偶数的和用while,为什么编译没错,但是运行的时候出来负的好几位数,溢出了还是编译不对?好像是while()里面不对吧,怎么改呢??谢谢好心人了。!!
#include <stdio.h>
void main()
{
int i,s;
s=0;
while(i<=100&&i%2==0)
{
s=s+i;
i++;
}
printf("s=%d\n",s);
}
你们的意思我懂了,谢谢大家了。可是i加初始化了为0了,也满足while了,为什么还是不对呢??

这是你的程序,给你分析一下
#include <stdio.h>
void main()
{
int i,s;
s=0;
while(i<=100&&i%2==0) //当i<=100并且i%2==0时执行下面的语句,当i=1,或i=3时不满足i%2==0.所以下面的while不进行
{
s=s+i;
i++; //i++ i=?i++=?这个问题没法回答,电脑也一样
}
printf("s=%d\n",s);
}
你的程序应该是这样的:
#include <stdio.h>
void main()
{
int i=1,s;
s=0;
while(i<=100)
{
if(i%2==0)
s=s+i;
i++;
}
printf("s=%d\n",s);
}这样应该没错了,不过我没执行过,你试试吧

while条件在i=1就是假了,没执行循环,可以改成while(i<=100){if(i%2==0)s=s+i;i++}

#include <stdio.h>
void main()
{
int i=1,s=0;
while(i<=100)
{ if(i%2==0)
s=s+i;
i++;

}
printf("s=%d\n",s);
}

#include <stdio.h>
void main()
{
int i,s;
s=0;
while(i<=100) //条件要写在循环体里面,你初始化为1的话,由于你的while条
//