数组的一般用处
1.当只要大量数据而不关心数据名称的时候
eg:1到100的求和
2.协议
3.地址连续
4.学生成绩管理
数组与函数
a.当数组当做实际参数进行传参时,传递的是数组的首地址(数组中第一个元素的地址)
b.当数组作为形式参数时,数组代表实际参数的首地址,且形式参数中括号[]仅仅表示它是一个数组,不表示数组的大小
c.当调用函数对数组进行操作时,实际参数中一般不仅仅传递数组的首地址,同样还带上一个表示数组长度的参数
//笔试可能会考数组arry[]的大小长度为?
sizeof(array)/sizeof(array[0])
学生成绩管理程序(最高低分及平均分)
#include <stdio.h>#include <stdlib.h>int tips() { int num; printf("请输入班级人数:\n"); scanf("%d",&num); return num;}void input(int score[], int b){ int i=0; for(i=0;i<b;i++){ printf("请输入第%d个学生的成绩:\n",i+1); scanf("%d",&score[i]); if(100<score[i] || score[i]<0){ printf("哪里有这种神奇的分数\n"); printf("强制退出,我的程序不给憨憨用\n"); system("pause"); exit(-1); } } }void printScore(int datas[],int c){ int i=0; for(i=0;i<c;i++){ printf("第%d个学生的成绩是:%d\n",i+1,datas[i]); }}int getMax(int datas[],int d){ int i=0; int max=datas[0]; for(i=0;i<d;i++){ if(max<datas[i]){ max=datas[i]; } } return max;}int getMin(int datas[],int e){ int i=0; int min=datas[0]; for(i=0;i<e;i++){ if(min>datas[i]){ min=datas[i]; } } return min;}float getAverage(int datas[],int f){ int i=0; int sum=0; float average; for(i=0;i<f;i++){ sum=sum+datas[i]; } average=(float)sum/f; return average;}void printCons(int g,int h,float j) { printf("最高分是:%d\n",g); printf("最低分是:%d\n",h); printf("平均分是:%f\n",j);}int main(){ int a; int max; int min; float average; //1.获取班级人数 a=tips(); int array[a];//2.输入学生成绩 input(array,a);//3.提示学生成绩 printScore(array,a);//4.找最高分 max=getMax(array,a);//5.找最低分 min=getMin(array,a);//6.计算平均分 average=getAverage(array,a);//7.输出结果 printCons(max,min,average); system("pause"); return 0; }