在程序設(shè)計(jì)中,為了處理方便,把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數(shù)據(jù)元素的集合稱為數(shù)組。在C語言中,數(shù)組屬于構(gòu)造數(shù)據(jù)類型。一個(gè)數(shù)組可以分解為多個(gè)數(shù)組元素,這些數(shù)組元素可以是基本數(shù)據(jù)類型或是構(gòu)造類型。因此按數(shù)組元素的類型不同,數(shù)組又可分為數(shù)值數(shù)組、字符數(shù)組、指針數(shù)組、結(jié)構(gòu)數(shù)組等各種類別。
【案例描述】
編程實(shí)現(xiàn):輸入10個(gè)人的成績(jī),求總分及平均成績(jī)。
輸入格式:1 2 3 4 5 6 7 8 9 10
輸出格式:總分=55,平均分=5.50
【案例分析】
需要定義10個(gè)變量分別存儲(chǔ)10個(gè)成績(jī)。
【參考代碼】
#include<stdio.h>
int main()
{int a,b,c,d,e,f,g,h,i,j,s=0;
printf("輸入成績(jī):\n");
scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);
scanf("%d%d%d%d%d",&f,&g,&h,&i,&j);
s=a+b+c+d+e+f+g+h+i+j;
printf("總分=%d,平均分=%.2f",s,s/10.0);
}
【說明】
1、也可由以下代碼實(shí)現(xiàn)案例需求:
#include<stdio.h>
int main()
{int a,i,s=0;
printf("輸入成績(jī):\n");
for(i=0;i<10;i++)
{ scanf("%d",&a);
s+=a;}
printf("總分=%d,平均分=%.2f",s,s/10.0);
}
2、以上代碼的優(yōu)點(diǎn)是變量少,缺點(diǎn)是沒有保存10個(gè)成績(jī)。
3、按照參考代碼的思路,人數(shù)越多,需要定義的變量也越多,也需要更多的代碼行來調(diào)用scanf函數(shù)完成成績(jī)的錄入。而利用數(shù)組,則能很好地解決這些問題。如以下代碼所示。
int main()
{int a[10],i,s=0;
printf("輸入成績(jī):\n");
for(i=0;i<10;i++)
{ scanf("%d",&a[i]);
s+=a[i];}
printf("總分=%d,平均分=%.2f",s,s/10.0);
}