在主函数中定义一个一维数组,把若干个人(人数自己确定)的成绩存放在一维数组中,这些数值需要从键盘里任意输入。编写函数fun,它的功能是:将高于平均分的分数放在一个数组中,将低于平均分的分数放在另一个数组中,要求在主函数中输出两个数组。
#include <stdio.h>
#include <stdlib.h>
void fun(int n,float *s,float *a,float *b){
float sum = 0;
float *t = s;
for(int i = 0; i<n; i++,t++){
sum += *t;
}
float avg = (float)sum / n;
for(int i = 0; i < n; i++,s++){
if(*s > avg){
*a = *s;
a++;
}else{
*b = *s;
b++;
}
}
}
int main(){
int n;
printf("人数:\n");
scanf("%d",&n);
float *s = (float*)malloc(n * sizeof(float));
float *a = (float*)malloc(n * sizeof(float));
float *b = (float*)malloc(n * sizeof(float));
printf("成绩:\n");
for(int i = 0; i < n; i ++){
scanf("%f",&s[i]);
}
fun(n,s,a,b);
printf("高于平均分得成绩:\n");
for(int i =0;a[i] != '\0'; i++){
printf("%f ",a[i]);
}
printf("\n");
printf("低于平均分得成绩:\n");
for(int i = 0;b[i] != '\0'; i++){
printf("%f ",b[i]);
}
printf("\n");
return 0;
}
运行结果:
本回答被网友采纳