数组和函数的综合应用
#include <stdio.h>
#include <stdlib.h>
void initscores(int datas[],int size)
{
int i;
for(i=0;i<size;i++)
{
//1.1提示用户输入第多少个数
printf("请输入第%d个分数: ",i+1);//0+1=1
//1.2获取用户的输入scanf
scanf("%d",&datas[i]);
if(datas[i]>100 || datas[i]<0)
{
printf("没有这种分数\n");
printf("强制退出\n");
system("pause");
exit(-1);
}
}
}
void printscores(int datas[],int size)
{
int i;
for(i=0;i<size;i++)
{
//1.4提示用户输入第多少个数
printf("第%d个分数是:%d\n",i+1,datas[i]);
}
}
int getMax(int datas[],int size)
{
int i;
int max;
max=datas[0];//定义最高分为0
for(i=0;i<10;i++)
{
if(max<datas[i])
{
max=datas[i];
}
}
return max;
}
int getMin(int datas[],int size)
{
int i;
int min;
min=datas[0];//定义最低分为0
for(i=0;i<10;i++)
{
if(min>datas[i])
{
min=datas[i];
}
}
return min;
}
float getAverage(int datas[],int size)
{
int i;
int total=0;
float average;
for(i=0;i<size;i++)
{
total+=datas[i];
}
average=(float)total/10;
return average;
}
void printret(int data1,int data2,float data3)
{
printf("最高分: %d\n 最低分: %d\n 平均分 %f\n",data1, data2, data3);
}
int main()
{
int scores[10];
int len;
int max;
int min;
float average;
len=sizeof(scores)/sizeof(scores[0]);
//1.初始化数组
initscores(scores,len);
//1.3打印数组
printscores(scores,len);
//2.找到最高分
max=getMax(scores,len);
//3.找到最低分
min=getMin(scores,len);
//4.算出平均分
average=getAverage(scores,len);
//5.输出结果
printret(max,min,average);
system("pause");
return 0;
}
运行结果
注:传参,在main函数中定义两个变量分数scores和长度大小len,放在所定义函数的括号中,然后在被调函数中,定义了分数datas和长度大小size。通过调用函数的方式把主函数的分数和长度大小,调用到被调函数中,从而对数据进行操作。
——@上官可编程