请帮我讲下3道C语言题目,急
都是和自加自减有关的,怎么算都和答案不对。 int k,n,m; n=10;m=1;k=1; while(k++<=n)m*=2; printf("%d\n",m); 我算出来是2的9次方,答案是2的10次方? #include <stdio.h> main() { int x=2; while(x--); printf("%d\n",x); } 答案是-1。 我觉得第一步输出来怎么都是1啊? int i=0,sum1; do{sum+=i++;} while(i<5); printf("%d\n",sum); 答案是11。我的疑问是do里面的语句 然后我算出来是10 能帮我详细描述下过程吗? 谢谢,马上要2级考试了,真的很急,分今天都用了,只剩这么多了,希望能帮下,谢谢
第一道题 k先和n比较 然后再加加 所以结果是2的10次方 第二道题 和第一道原理一样,是x先做判读,然后再减减操作 当x = 0时退出循环之前 要做一次减减操作 所以x = -1 第三道题 和前两道题原理一样 sum = 1; 初始化值 然后循环体里面的过程 sum = sum + 0; i = i + 1; sum = sum + 1; i = i + 1; sum = sum + 2; i = i + 1; sum = sum + 3; i = i + 1; sum = sum + 4; i = i + 1; 退出循环 所以sum最后的结果为1 + 0 + 1 + 2 + 3 + 4 = 11 从所有题目来看,你并没有把i++ 和++i搞清楚怎么运算的。
对于i++来说 i先给前面赋值,然后自身增加1 例如:i = 1;n = i++; 结果:n = 1; i = 2; 对于++i来说,i先自身增加1,然后再做其他操作。例如:i = 1; n = ++i; 结果: n = 2;i = 2; 减减操作和加加操作相同。
答:double num=0;//也可以用long型 int n,m; cin>>n; for(int i=1;i<=n;i++) { m=1; for(int j...详情>>