函数的调用、封装
#include <stdio.h>
#include <stdlib.h>
void initprogram(int datas[],int num)
{
int i;
for(i=0;i<num;i++)
{
printf("请输入第%d个学生成绩:",i+1);
scanf("%d",&datas[i]);
if(datas[i]>100||datas[i]<0)
{ printf("第%d位学生成绩输入错误!\n",i+1);
while(datas[i]>100||datas[i]<0)
{ printf("请再次输入第%d个学生成绩:",i+1);
scanf("%d",&datas[i]);
}
}
/*if(datas[i]>100||datas[i]<0)
{
printf("人才,敢问是哪位神仙如此为所欲为?\n");
printf("你不适合我们这个程序!!!强制终止!\n"); //成绩输入错误强制退出//
system("pause");
exit(-1);
}*/
}
}
void printfarray(int datas[],int num)
{
int i;
for(i=0;i<num;i++)
{
printf("第%d位学生成绩为:%d\n",i+1,datas[i]);
}
}
int findthemax(int datas[],int num)
{ int i;
int max;
max=datas[0];
for(i=0;i<num;i++)
{
if(max<datas[i])
max=datas[i];
}
return max;
}
int findthemin(int datas[],int num)
{ int i;
int min;
min=datas[0];
for(i=0;i<num;i++)
{
if(min>datas[i])
min=datas[i];
}
return min;
}
float gettheaverge(int datas[],int num)
{ int total=0;
int i;
int c;
float average;
for(i=0;i<num;i++)
{
total=total+datas[i];
c=i+1;
}
printf("成绩总分:%d\n",total);
average=(float)total/c;
return average;
}
void result(int max,int min,float average, int num)
{
printf("最大值为:%d\n",max);
printf("最小值为:%d\n",min);
printf("学生人数为:%d\n",num);/*检查学生人数是否准确,即是确保分母无误。*/
printf("平均值为:%f\n",average);
}
int main()
{ int max;
int min;
float average;
int total;
int array[10];
//1.成绩录入//
initprogram(array,sizeof(array)/sizeof(array[0]));
//2.成绩打印确认//
printfarray(array,sizeof(array)/sizeof(array[0]));
//3.找出最大值//
max=findthemax(array,sizeof(array)/sizeof(array[0]));
//4.找出最小值//
min=findthemin(array,sizeof(array)/sizeof(array[0]));
//5.算出平均值//
average=gettheaverge(array,sizeof(array)/sizeof(array[0]));
//6.输出结果//
result(max,min,average,sizeof(array)/sizeof(array[0]));
/*printf("%d",sizeof(array)/sizeof(array[0]));*/
//调试时,检查sizeof(array)/sizeof(array[0])值是否变换,进而排除故障原因//
system("pause");
return 0;
}