编辑: xiong447385 | 2019-07-12 |
edu.cn 2013/3/26 2013/3/26 厦门大学非计算机专业本科生公共课 (2012-2013第2学期) C语言程序设计 林子雨 厦门大学计算机科学系 E-mail: [email protected] 个人主页:http://www.cs.xmu.edu.cn/linziyu 《C语言程序设计》 厦门大学计算机科学系 林子雨 [email protected] 2013/3/26 课程提要 ?
第一章 绪论 ?
第二章 C语言基础 ?
第三章 结构化程序设计 ?
第四章 选择结构 ?
第五章 循环结构程序设计 ?
第六章 函数 ?
第七章 编译预处理 ?
第八章 数组 ?
第九章 结构体、共用体和枚举类型 ?
第十章 指针 《C语言程序设计》 厦门大学计算机科学系 林子雨 [email protected] 2013/3/26 第5章 循环结构程序设计 ? 5.1 while语句 ? 5.2 do…while语句(*) ? 5.3 for语句 ? 5.4 break语句和continue语句(*) ? 5.5 循环的嵌套 《C语言程序设计》 厦门大学计算机科学系 林子雨 [email protected] 2013/3/26 5.1 while语句 语法: while(表达式) 语句 语义:先计算表达式的值,如果其值为非0("真"),则执行循环体;
否则,退出循环,执行该循环结构后的下一条语句.每当执行完一次循 环体以后,再继续计算表达式的值,如果值为非0,则再次执行循环体. 如此反复,直到计算出的表达式值为0时,退出循环. 注意: (1)当循环体由多条语句构成时,必须加大括号把循环体当做语句块. (2)while语句是先判断,后执行.如果循环的条件一开始就不成立, 则循环体一次都不执行. (3)循环体中必须有改变循环条件的语句,否则循环不能终止,形成无 限循环(或死循环). 表达式 语句 真假while循环 《C语言程序设计》 厦门大学计算机科学系 林子雨 [email protected] 2013/3/26 5.1 while语句 例5.1.1 求1-100中各偶数之和. #include void main() { int i,sum=0;
i=2;
while( i0) { printf("%f\t%f\n",x,sqrt(x));
printf("Enter another positive number(or
0 to quit):");
scanf("%f",&x);
} } 《C语言程序设计》 厦门大学计算机科学系 林子雨 [email protected] 2013/3/26 5.1 while语句 例5.1.3 用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到最后一项的绝 对值小于10-6为止. #include #include main ( ) { int s=1;
float n=1,t=1,pi,sum=0.0;
//t是循环控制变量.执行while语句之前,t必须有确定的值;
而sum、n、t也必须有初值 while ( fabs(t) >= 1e-6 ) //某一项t绝对值小于10-6时退出循环 { sum=sum+t;
n=n+2;
//修改分母 s=-s;
//符号翻转 t=s/n;
// 求出新的一项 } pi=sum*4 ;
printf("pi=%f\n",pi);
} 《C语言程序设计》 厦门大学计算机科学系 林子雨 [email protected] 2013/3/26 5.1 while语句 例5.1.4 输入两个正整数m和n,求其最大公约数. 解:可采用欧几里德的辗转相除法: (1)对于已知两个数m和n,使得m>n;
(2)m除以n的余数为r;
(3)若余数r等于0,则转到步骤(5),否则继续进行下一步;
(4)将除数n作为新的被除数m,把余数r作为新的除数n, 求出新的余数r,转到步骤(3);
(5)结束,这时n的值即为最大公约数. 《C语言程序设计》 厦门大学计算机科学系 林子雨 [email protected] 2013/3/26 5.1 while语句 #include void main() { int m,n,t,r;
printf("请输入m,n:");
scanf("%d,%d",&m,&n);
if(mk ) //若新输入的数据比原来假定的最 min=k;
//更新最小数 scanf("%d",&k);
//为下一次循环读入新数据 } printf("\nmin=%d\n",min);