用do-while编1加到100的程序的问题

include "stdio.h"
main()
{int i,s;
i=0;s=0;
do
{i++;s+=i;}
while(i<=100);
printf("%d,%d\n",s,i);
}
i的值为什么是101?

do-while和while分别是执行后判断和判断后执行,你选了do-while则是首先执行语句后进行判断,你判断语句到100的时候还是符合条件的,执行了i=101这个条件的,直接用while就不会了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-22
那里错了,应该是while(i<=99);因为当i=99是返回到do中,i再自增变成100,在进行s=s+i的运算的,所以那里要改成while(i<=99);看看行不行,后面还要加上return 0;
第2个回答  2013-01-22
是先循环后着判断的与先判断后循环的不同之处就是,先循环后判断一定会是不符合时才跳出,否则转入下次循环!

while(i <= 100)
{
//语句
}
这种情况当i = 100时用可进入!

do
{
//语句
}while(i<=100)
这种情况是当I>100时才会退出!

所以while循环被称为当型循环(早其培训教材上经常这么写)而do while则被称为直到型循环!

所以直到型循环只有当s=100时现进入一次,最后发现s=101时才会退出!
相似回答