8.5 实例
数组可以在程序中实现数据存储,程序可以使用循环的方法对数组进行访问。本节将讲解数组与指针的编程使用实例。
8.5.1 学生成绩统计实例
本节编写一个成绩输入与统计程序。在程序中输入6个人的姓名、各科成绩。然后程序输出每个人的各科成绩、总成绩和平均成绩。程序的代码如下所示。
【范例8-10】学生成绩统计程序,实例代码如下所示。
实例代码8-10
- 01 #include <stdio.h>
- 02 int main()
- 03 {
- 04 char name[6][10]; /*定义6个人的姓名,6个字符数组。*/
- 05 int score[6][5]; /*定义一个二维数组存放成绩。*/
- 06 int i; /*定义一个计数器变量。*/
- 07 for(i=0;i<6;i++) /*进行6次循环。*/
- 08 {
- 09 printf("please input the name:\n"); /*提示输入姓名。*/
- 10 scanf("%s",name[i]); /*输入一个人的姓名。*/
- 11 printf("score ,math:\n");
- 12 scanf("%d",&score[i][0]); /*输入数学成绩。*/
- 13 printf("score ,English:\n");
- 14 scanf("%d",&score[i][1]); /*输入外语成绩。*/
- 15 printf("score ,Chinese:\n");
- 16 scanf("%d",&score[i][2]); /*输入汉语成绩。*/
- 17 score[i][3] = score[i][0]+score[i][1]+score[i][2]; /*求出这个人的总分。*/
- 18 score[i][4]= (int)(score[i][3] /3); /*求出这个人的平均分。*/
- 19 }
- 20 printf("result:\n math English Chinese total average :\n");
- 21 for(i=0;i<6;i++) /*循环输出成绩。*/
- 22 {
- 23 printf("%s: %d %d %d %d %d \n",name[i],score[i][0],score[i][1], score[i][2],
- 24 score[i][3],score[i][4]); /*输出一个人各科的成绩。*/
- 25 }
- 26 return 0;
- 27 }
【执行结果】输入下面的命令,编译这个程序。- gcc 8.10.c
输入下面的命令,运行这个程序。- ./a.out
程序运行时,在文本提示后面输入每个人的姓名和各科分数。程序显示的结果如下所示。- math English Chinese total average :
- jim: 45 76 87 208 69
- tom: 56 76 45 177 59
- bill: 56 76 87 219 73
- lucy: 45 65 87 197 65
- bod: 56 76 46 178 59
- lily: 34 65 67 166 55
【代码解析】实例代码8-10的说明如下:
代码第05行定义了一个6乘5的二维数组,共6行(每行表示一个学生的各科成绩),每行5个元素(分别表示前三门课的成绩、总成绩和平均成绩)。