习题代码分享(1)
个人向,仅供参考~
编写函数计算10个同学的平均分、最高分和最低分。
函数原型为 double score(double a[],int n, double b[]), 要求: 在主函数中输入10个成绩;调用函数传递数据,并计算三个成绩,通过return 语句返回平均分,通过地址传递返回最高分和最低分。
输入格式:
scanf("%lf",&a[i]);
输出格式:
printf("max=%f,min=%f,aver=%f\n",c[0],c[1],aver);
输入样例:
99 45 78 97 100 67.5 89 92 66 43
输出样例:
max=100.000000,min=43.000000,aver=77.650000
程序代码:
#include<stdio.h>
double score(double a[],int n,double b[]){
double *p=a,*max=a,*min=a;
double *change=b;
int i;
for(i=0;i<n;i++,p++){
if(*p>*max)
max=p;
if(*p<*min)
min=p;
}
*change=*max;
*(change+1)=*min;
double sum,aver;
for(i=0;i<=n;i++){
sum+=a[i];
}
aver=sum/n;
return aver;
}
int main(){
int i;
double aver;
double a[10];
double c[2];
for(i=0;i<=9;i++){
scanf("%lf",&a[i]);
}
aver=score(a,10,c);
printf("max=%f,min=%f,aver=%f\n",c[0],c[1],aver);
return 0;
}
运行结果:
欢迎指正!