这次对这个代码比上次有了2个改动,第一个改动用定义宏命令 #define,这个语法要感谢@garbageMan
第二个改动把第一次的i+2 改为了用if语句判断。
代码如下:
1 /* 2 Name:1-100之间奇数的和 3 Copyright: By.不懂网络 4 Author: Yangbin 5 Date:2014年2月13日 14:38:02 6 Description:重新编写的1-100之间的奇数和,第一个改动是用定义宏命令 #define, 7 上次求奇数16行写的是i+2,这次用if语句完成本次求和。 8 */ 9 # include <stdio.h> 10 # define BEGIN 1 11 # define END 100 12 int main(void) 13 { 14 int i; 15 int sum = 0; 16 for(i=BEGIN;i<=END;++i) 17 { 18 if (i%2==1) //1对2取余等于1为奇数,成立则执行第19行,否则执行16行++i 19 sum +=i; //sum+=i 同 sum = sum +i; 20 } 21 printf("sum=%d\n",sum); 22 return 0; 23 } 24 25 /* 26 ---------------------- 27 该代码由C-Free 5.0 编写并输出调试结果 28 ------输出结果------- 29 sum=2500 30 --------------------- 31 32 */
代码运行步骤思考,顺序为16行的i=BEGIN 为1,i<=END 为2,若成立执行执行18行的步骤3,1%2==1成立执行sum+=i,再执行16行的++i 一次循环结束。(如果1%2==1不成立,直接执行++i)
以下为方便自己计算,将i<=END改为i<=10
1----->当i为1时,小于等于步骤(2)的END,执行步骤(3)i%2==1成立,执行sum+=i。sum是0加上i的值1,sum变成1,i为1 ++i,i为2.第一次循环结束。
2----->当i为2时,小于等于步骤(2)的END,执行步骤(3)i%2==1不成立,执行++i,第二次循环结束。i此时为3
3----->当i=3时,小于等于步骤(2)的END,执行步骤(3)i%2==1成立,执行sum+=i。sum在第一次循环时已变成了1,加上i的值3,sum第三次循环后的值为4,i为3,++i后,i为4,第三次循环结束。
4----->当i=4时,小于等于步骤(2)的END,执行步骤(3)i%2==1不成立,执行++i,第四次循环结束。i此时为5
5----->当i=5时,小于等于步骤(2)的END,执行步骤(3)i%2==1成立,执行sum+=i。sum在第三次循环时已变成了4,加上i的值5,sum第五次循环后的值为9,i为5,++i后,i为6,第五次循环结束。
6----->当i=6时,小于等于步骤(2)的END,执行步骤(3)i%2==1不成立,执行++i,第六次循环结束。i此时为7
7----->当i=7时,小于等于步骤(2)的END,执行步骤(3)i%2==1成立,执行sum+=i。sum在第五次循环时已变成了9,加上i的值7,sum第七次循环后的值为16,i为7,++i后,i为8,第七次循环结束。
8----->当i=8时,小于等于步骤(2)的END,执行步骤(3)i%2==1不成立,执行++i,第八次循环结束。i此时为9
9----->当i=9时,小于等于步骤(2)的END,执行步骤(3)i%2==1成立,执行sum+=i。sum在第七次循环时已变成了16,加上i的值9,sum第九次循环后的值为25,i为9,++i后,i为10,第九次循环结束。
10---->当i=10时,小于等于步骤(2)的END,执行步骤(3)i%2==1不成立,执行++i,第十次循环结束。i此时为11
11---->当i=11时,小于等于步骤(2)的END不成立,停止for循环。
-----------------------------------------------------------------------------------
最终结果1-10之间的奇数和为25
------------------------------------
如以上代码有误还请看到此博的朋友门指出,您的点拨是我学习最大的帮助。