hyqd.net
当前位置:首页 >> #inCluDE<stDio.h> voiD mAin() { int n=2,k=0;... >>

#inCluDE<stDio.h> voiD mAin() { int n=2,k=0;...

答案是1 2.分析:这个程序关键是分析while(k++&&n++>2); 这条语句.注意这个while的循环体语句为空语句.在判断k++&&n++>2这个表达式是否成立时,先判断k++得值,k++的值是k的初值0,对于逻辑与&&,如果前面k++表达式的值是零,那么它后面的表达式不需要计算.所以输出值为1 2

while(k++)判断完之后k会加加,然后再执行printf,k当然就是1

while循环中,先判断k是否为真(是否大于零),发现k为零,而零&&任何玩意都为假,所以再执行一下k++,使k变成1,并退出循环,不执行n++>2.所以k等于1,n等于2.

第一次循环 判断条件 k++,此时k = 0,所以条件为假,n++ > 2不会执行,因为条件为假 所以循环结束,k = 1, n = 2

你的数据类型定义的不对, 里面有除法,结果一定是个浮点数,你却都定义int类型的变量m,n可以是int的,把a,b,c,d都改成float的,否则即使有结果,误差也大的吓死人.改成float , 那句printf就不用改了,因为c是float, 格式符也是float,正好一致了

结果是2,哥们 int a少个空格吧

for(;;;) for 分号太多,2 个可以.if(i>j); -- 去掉分号 改为:#include<stdio.h> void main() { int i=0,j=10,k=2,s=0; for(;;) { i+=k; if(i>j) {printf("%d\n",s);break; } else printf("i=%d\n",i); } }

咋问题看不全呢,不知道,你是不是想问,程序编译报错?for语句中少了一个“;”号

看看,满足你的要求吗?#include &lt;stdio.h&gt;#include &lt;math.h&gt;void main (){ int n,i,k; for(n=2;n&lt;=100;n+=2) { k=int(sqrt(n)); for(i=2;i&lt;k;i++) if(n%i==0) break; if(i&gt;=k) printf("\t%2d",n); }}

这好像是c语言吧!不是高中数学的范畴.

相关文档
ltww.net | lstd.net | sbsy.net | bfym.net | 2639.net | 网站首页 | 网站地图
All rights reserved Powered by www.hyqd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com