携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第25天,点击查看活动详情
举个使用循环处理的数组例子
#include <stdio.h>
#define SIZE 10
#define PAR 72
int main() {
int index,score[SIZE];
int sum=0;
float average;
printf("Enter %d golf scores:\n",SIZE);
for(index=0;index<SIZE;index++)
scanf("%d",&score[index]);
printf("The scores read in are as follow:\n");
for(index=0;index<SIZE;index++)
printf("%5d",score[index]);
printf("\n");
for(index=0;index<SIZE;index++)
sum+=score[index];
average=(float)sum/SIZE;
printf("Sum of scores=%d,average=%.2f\n",sum,average);
printf("That's a handicap of %.0f.\n",average-PAR);
return 0;
}
运算结果
分析一下
首先,注意程序示例虽然打印了11个数字,但只读取了10个数字,因为循环只读了10个值。由于scanf()会跳过空白字符,所以可以在一行输入10个数字,也可以每行只输入一个数字,或者像本例这样混合使用空格和换行符隔开每个数字。因为输入是缓冲的,只有当用户键入Enter键后数字才会被发给程序。
然后,程序使用数组和循环处理数据,这比使用10个单独的scanf()语句和10个单独的printf()语句读取10个分数方便得多。for循环提供了一个简单直接的方法来使用数组下标。注意,int类型数组元素的用法与int类型变量的用法类似。要读取int类型变量fue,应这样写 scanf("%d",&score[index]);。
该程序示例演示了一些较好的编程风格。第一,用#define 指令创建的明示常量来指定数组的大小。这样就可以在定义数组和设置循环边界时使用该明示常量。如果以后要扩展程序处理20个分数,只需要简单地把SIZE重新定义为20即可,不用逐一修改程序使用了数组大小的每一处。
下面的代码可以很方便处理一个大小为SIZE的数组:for(index=0;index<SIZE;index++)
设置正确的数组边界很重要。第1个元素的下标是0,因此循环开始时把index设置为0.因为从0开始编号,所以数组中最后一个元素的下标是SIZE-1。也就是说,第10个元素是 score[9].通过测试条件index<SIZE来控制循环中使用的最后一个index的值是SIZE-1。