帮我解一下这道C语言的题目

#include<stdio.h>main(){intk=2,s=0;Do{if((k%2)!=o)continue;s+=k;k++;}while(k>10);prin... #include< stdio.h>
main()
{int k=2,s=0;
Do{if((k%2)!=o) continue;
s+=k;k++;}
while(k>10);
printf("s=%d\n",s);
}
有谁帮我解释一下整个运算过程 谢谢~
我这是二级考的一道题目。答案是s=0,我主要是想知道第一次循环时if条件不成立,那么continue之后的两句语句,s+=k和k++是不是都不用执行了,于是直接判断while(k〉10),因为不成立,所以跳出循环,s仍为0 。我这么分析对吗
展开
 我来答
清心又谦恭丶布丁9
2009-08-08 · TA获得超过6605个赞
知道小有建树答主
回答量:1247
采纳率:100%
帮助的人:1989万
展开全部
#include<stdio.h>//注意你在stdio前面多打一个空格。编译会出错···
main()
{int k=2,s=0;
do{//注意do是关键词,必需要小写。。。请不要乱改
if((k%2)!=0) //这个应该是0,而不是字母o。楼主打错了··
continue;
s+=k;
k++;
}while(k>10);
//如果楼主的k>10,请注意,他只做了一次do,并没有任何一次循环。
printf("s=%d\n",s);//所以结果是s=0
}
以上是按楼主的理解解释的

针对楼上某些人的提问

#include<stdio.h>
main()
{int k=2,s=0;
do{
if((k%2)!=0)
{
printf("%d\t",k);
continue; //还有楼上的有的人瞎改。我也顺便说一下吧。contiune的意思是跳出该次循环,进行下一次循环。当k=3的时候跳出该次循环,k的值并没有+1,所以一直是3,因此会死循环,请注意看printf的值,一直是3
}
s+=k;
k++;
}while(k<10);//所以显然这里不能改成k<10.只能用k>10.只样的话,他不经过while,这样就不会死循环

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

楼主我刚才查过些资料。。结果是这样的
continue所谓的跳出,必需先在while循环里
可是当你第一次做do的时候还没在循环
所以到if的时候,虽然k%2==0,但是此时的continue的意思并不是跳出循环。
因为循环还没开始。所以会继续往下走
这样s+=k就经过处理所以s=2.
此时的k=3.然后再判断while不符合,所以跳出
结果是2~~~~~~~~~~这是上机运行过结果,肯定没有问题。。

#include<stdio.h>
main()
{int k=2,s=0;
do{
printf("s=%d\n",s);//也可以把这个打印放这里,你就会发现一直打印的是S=2.也就是第一次do的结果,后面continue跳出循环根本不经过下面两句
//从这里来看,也知道第一次的continue的作用。后面continue跳出该次循环就好理解了
if((k%2)!=0)
{
printf("%d\t",k);
continue;
s+=k;
k++;
}while(k<10);

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

}

欢迎楼主一起讨论··
咫魂
2009-08-08 · TA获得超过417个赞
知道小有建树答主
回答量:407
采纳率:100%
帮助的人:107万
展开全部
第一行:包括<输入输出>
第二行:主函数
第三行:整型k=2,s=0(这是基本的赋值语句)
第四行:执行循环
如果k%2不等于0则继续
第五行:将k赋值于的s自增;k自增
第六行:当k>10停止
第七行:输出s.

(本人现学现卖~只供参考)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
SunnyCase
2009-08-08 · TA获得超过132个赞
知道小有建树答主
回答量:164
采纳率:0%
帮助的人:137万
展开全部
首先赋值k=2 s=0
先执行:
if((k%2)!=0) continue;//如果k不能被2整除就跳过此次循环 进行下一次循环
s+=k;k++;//s=s+k k=k+1
}
while(k>10)//k>10就继续循环 否则跳出
printf("s=%d\n",s);//打出"s=s的值"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiout
2009-08-08
知道答主
回答量:20
采纳率:0%
帮助的人:12.6万
展开全部
调用stdio.h头文件,运行主函数,进入程序,定义K=2,S=0,如果K除2不等于0,则继续执行。最后输出S的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
奥德修sDavid
2009-08-08 · TA获得超过115个赞
知道答主
回答量:111
采纳率:0%
帮助的人:81.5万
展开全部
题目抄错了吧,一看怎么是个死循环啊,s就停在2这里了,k就等于3,然后不停判断k是否大于10.。。。。。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
叮叮喵儿
2009-08-08 · TA获得超过472个赞
知道小有建树答主
回答量:409
采纳率:0%
帮助的人:188万
展开全部
索瑞,高中QB语言没学好。帮不了忙。甚至我都分不清是不是QB语言了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式