- 1、本文档共45页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第5章循环结构程序设计;;问题
公司需要计算每一位员工的薪水,实行的是计时工资制,按照实际工作的时间(小时),与每小时的报酬进行计算员工所得薪水,并统计出公司支付的总薪水。
;数据需要;设计;程序流程图;实现
;while语句用来实现“当型”循环结构。
其一般形式如下:
while(表达式)语句;例5-1求;do-while语句,实现“直到型”循环结构。
其一般形式为
do
循环语句
while(表达式);
;例5-2用do-while语句求;例5-3while和do-while循环的比较;for语句的一般形式为
for(表达式1;表达式2;表达式3)语句
;for语句最简单的应用形式也就是最易理解的形式:
for(循环变量赋初值;循环条件;循环变量增值)语句;for语句的变化形式;for语句的变化形式;for语句的变化形式;for语句的变化形式;for语句的变化形式;for语句的变化形式;;(2)要得到6个班的平均成绩,只需将上面的程序运行6遍。即在上面程序的外面再加一层循环。i表示班数。
for(i=1;i=6;i++)
{
输出1个班的平均值
}
程序如下:
main()
{
intm=0,n=0;
floats=0,x=0;
for(i=1;i=6;i++)/*循环计算6个班的平均成绩*/
{
s=0;
for(n=1;n=20;n++)/*循环输入20个学生成绩*/
{scanf(%f,x);/*输入学生成绩*/
s=s+x;/*累加学生成绩*/
}
printf(%f\n,s/20);/*计算并输出该班成绩平均值*/
}
};注意:
(1)上面程序for语句的循环体内又包含了另一个for循环,这种形式称为循环嵌套。
(2)由于每一个班的成绩求和都是存放在s变量中,因此当要输入下一个班的成绩时,先要对s变量清零。所以s=0不能放在外层循环体外。
(3)对于需要输入较多的数据,在程序设计中最好加入一些提示信息,如“请输入××班××号学生成绩:”,使程序与用户之间有较好的亲和力,也便于数据输入。;例5-5打印如图5-11所示的图形。;(3)要实现i从1增加到5,只需在上面的循环语句外再加上一层循环“for(i=1;i6;i++)”即可。
程序如下:
main()
{
inti,j;
for(i=1;i=5;i++)/*i确定打印的行数*/
{
for(j=1;j=i;j++)/*j确定打印*的个数*/
printf(*);
printf(\n);/*打印完一行*后输出一个换行*/
}
};例5-6公鸡5元1只,母鸡3元1只,小鸡1元3只,100元钱买100只鸡,且每种鸡都要有,问可以各买多少只,并输出所有可能的方案。;(2)100只鸡,并且每种鸡都要有,所以公鸡最少要买1只,最多可以买98只,同样,母鸡最少也要买1只,最多可以买98只,小鸡数可根据公式z=100-x-y得到。要使每种情况都测试到,可以采用二重循环来实现。
for(x=1;x=98;x++)
{
for(y=1;y=98;y++)
{
z=100-x-y;
if(5*x+3*y+z/3==100)
{输出公鸡、母鸡、小鸡数}
}
};(3)考虑到小鸡1元3只,所以小鸡数应是3的倍数,判断条件改为“z%3==05*x+3*y+z/3==100”。
程序如下:
main()
{
intx,y,z;
for(x=1;x=98;x++)/*公鸡数的变化范围*/
for(y=1;y=98;y++)/*母鸡数的变化范围*/
{
z=100-x-y;/*计算出小鸡数*/
if(z%3==05*x+3*y+z/3==100)/*判断是否用100元钱*/
pr
文档评论(0)