- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Lect_chap04_循环结构教程
第 四 章 循环结构;本章要点;4.1 用格里高利公式求π的近似值;#include math.h
int main(void)
{
int denominator, flag;
double item, pi;
flag = 1; denominator = 1 ; item = 1.0; pi = 0;
while(fabs (item) = 0.0001) {
item = flag * 1.0 / denominator;
pi = pi + item;
flag = -flag;
denominator = denominator +2;
}
pi = pi * 4;
printf ( “pi = %f\n”, pi);
return 0;
};4.1.2 while 语句;while 语句和for语句
都是在循环前先判断条件;while 和 for 的比较;例4-2 从键盘输入一批学生的成绩,计算平均成绩,并统计不及格学生的人数。
分析:
求累加和
确定循环条件
不知道输入数据的个数,无法事先确定循环次数
用一个特殊的数据作为正常输入数据的结束标志,比如选用一个负数作为结束标志。
循环的三种常见的控制方式(计数控制的循环、条件控制的循环、标记控制的循环) ;#include stdio.h
Int main(void)
{ int num;
double grade, total, count;
num = 0; total = 0;count=0;
printf(Enter grades: \n);
scanf(%lf, grade); /* 输入第1个数*/while (grade = 0) { /* 输入负数,循环结束 */
total = total + grade;
num++;
if(grade60) count++;
scanf (%lf, grade);
}
if(num != 0) {
printf(Grade average is %.2f\n, total/num);
printf(Number of failures is %d\n, count);
}
else
printf( Grade average is 0\n);
return 0;
};4.2 统计一个整数的位数;int main(void)
{ int count, number;
count = 0;
printf(Enter a number: );
scanf (%d, number) ;
if (number 0) number = -number;
do {
number = number / 10;
count ++;
} while (number != 0);
printf(It contains %d digits.\n, count);
return 0;
};4.2.2 do - while 语句; while 是先判别条件,再决定是否循环;
do-while 是先至少循环一次,然后再根据循环的结果决定是否继续循环。;4.3 判断素数;4.3.1 程序解析-判断素数;int main(void)
{ int i, m;
printf(Enter a number: );
scanf (%d, m);
for (i = 2; i = m/2; i++)
if (m % i == 0) break;
if (i m/2m1 )
printf(%d is a prime number! \n, m);
else
printf(No!\n);
};4.3.2 break 语句;continue 语句;break 和 continue;break 和 continue;例4-5 简单的猜数游戏。最多允许猜5次。;4.4 求1! + 2! + …. + 100!;#include stdio.h
double fact (int n);
int main(void)
{ int i;
double sum;
sum = 0;
for(i = 1; i = 100; i++ )
sum =
文档评论(0)