c语言问题在线等答案

i=1;s=3
do
{ int s=s+i++;
if(s%7==0) continue;
else ++i
}
while(s<15);
printf("d%",i);
}为什么结果是8,请解答一下

#include<stdio.h>
main()
{int i=1;
while(i<=15)
if(++i%3!=2) continue;
else printf("%d",i);结果应该是什么???为什么?

i=1;a=0;s=1;
do
{a=a+s*i;s=-si;i++;}while(i<=10);
printf("a=d%",a);

第一题首先你要明白i++(执行完后加)和++i(执行前加)还有就是do,while是先做后判断;
第1次 3+1=4 //运行到下一句时i=2
第2次 4+2=6 //运行到下一句时i=3
第3次 6+3=9 //运行到下一句时i=4
此时满足了else条件,自此执行到++i时,i=5
第4次 9+5=14 //运行到下一句时i=6
此时满足了else条件,自此执行到++i时,i=7
第5次 14+7=21 //运行到下一句时i=8
因为21>15所以循环终止

第二题,while是先判断后做;
第1次 2%3=0 //执行下一句前i=2
第2次 3%3=0 //执行下一句前i=3
第3次 4%3=1 //执行下一句前i=4
第4次 5%3=2 //执行下一句前i=5
此时满足条件,输出i的值5
第5次 6%3=0 //执行下一句前i=6
第6次 7%3=1 //执行下一句前i=7
第7次 8%3=2 //执行下一句前i=8
此时满足条件,输出i的值8
第8次 9%3=0 //执行下一句前i=9
第9次 10%3=1 //执行下一句前i=10
第10次 11%3=2 //执行下一句前i=11
此时满足条件,输出i的值11
第11次 12%3=0 //执行下一句前i=12
第12次 13%3=1 //执行下一句前i=13
第13次 14%3=2 //执行下一句前i=14
此时满足条件,输出i的值14
第14次 15%3=0 //执行下一句前i=15
循环结束

第三题do,while是先做后判断
楼主你是这么写的a=a+s*i;s=-si;i++;
s=-si这个应该编译不会通过的,有了前面两题的经验,楼主可以自己算一算,要有耐心哦,这些题主要是考验你对do,while和while结构的区别,还有就是++i和i++的区别
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-01-04
do。。while语句是先执行后判断
当s==7时执行语句,判断,符合,继续执行s==8时执行语句,判断,不符合,跳出语句。
第2个回答  2009-01-04
兄弟
这个在C语言的书上讲的很清楚了
如果我没记错的话,应该在第六章,谭浩强教授的那一本上
第3个回答  2009-01-04
语法错误,将完整的程序提交过来
第4个回答  2009-01-04
S I
3 1
4 3
7 4
11 6
17 8
do while先执行后判断
2581114
等于2时,输出,不等 continue 判断
第三题楼主写错了吧..
#include<stdio.h>
void main()
{
int i=1,a=0,s=1;
do
{a=a+s*i;s=-s;i++;}while(i<=10);
printf("a=%d",a);
}

a=-5
相似回答