循环结构在程序设计时,需清楚四个部分,循环控制变量的初值、循环条件的判断、循环体语句(需要重复操作的语句)和改变循环控制变量的变化值。
【4.1】编程实现,从键盘输入10个整数,求出它们的最大数。程序文件名ex4_1.c。
分析:在上次实验,编程实现了求两个整数的最大数,现将问题扩展到20个数,算法思想是一样的。
求任意n个整数的最大(小)数的常用算法:
定义两个变量,一个变量max(min)存放最大(小)数,另一个变量a存放输入的一个整数。
S1:首先对max赋初值。通常将输入的第一个数赋给最大(小)数,即max=a(min=a); S2:输入下一个数,并赋给a;
S3:max与a进行比较,若a大于max的值,将a的值赋给max;
S4:返回S2。
依次循环(重复执行),直到20个数都一一进行了比较,max变量中最后存储的数就是最大值。
而重复进行的“工作”,就是循环结构的循环体。
解决的两个关键问题:
1.max的初值如何给定?常采用的方法是,把输入的第一个数赋给max变量。
2.采用循环结构时,如何控制循环次数?因要从10个数中求最大值,但第一数已赋给max,因此max与剩下的9个数进行比较,所以循环9次。
本题已确定了循环次数,通常采用for循环语句。
编写源程序一,程序文件名ex4_1.c。
#include<stdio.h>
void main()
{
int a,max,i;
scanf("%d",&a);
max=a; /*将输入的第一个数作为最大数*/
for(i=1;i<10;i++) /*循环9次*/
{
scanf("%d",&a); /*输入待比较的数*/
if (max<a) max=a; /*输入的数与max的值进行比较*/
}
printf("The max value is:%d\n",max);
}
输入测试数据:21 765 78 9 456 89 76 32 90 76
程序运行结果:The max value is:765
循环结构的三种循环语句可以相互转换,也就是说选择任意一种循环语句能实现的循环结构,同样可以用其余两种循环语句实现。即用for语句可以实现的循环,用while或do-while同样可以实现。当给定了循环次数,首选for循环语句,若循环次数不明确,需要通过某条件控制循环时,首选while或do-while循环语句。while语句与do-while语句的区别是,while是先判断,后执行,而do-while是先执行,后判断。
编写源程序二,程序文件名ex4_11.c。