定义函数
数组a中存放着本班C语言期末考试的成绩,请补充代码,使其能实现求平均成绩、最高分、最低分及打印出补号学生的学号(1号学生的成绩存在数组的0号元素中,如果学号对应的同学退学或缺考,则输入分数为-1。注意退学的学生不能计入学生总数)。#include <stdio.h>
int main()
{
float a,avg,max,min;
int n,i;
printf("请输入本班学号的最大值:");
scanf("%d",&n);
printf("请输入学生成绩:\n");
for(i=0;i<n;i++)
scanf("%f",&a);
avg=f(a,n,&max,&min);
printf("平均分为:%.2f,最高分为:%.1f,最低分为:%.1f\n",avg,max,min);
print(a,n);
}
函数要怎么定义? 本帖最后由 jackz007 于 2021-11-30 20:18 编辑
float f(int a[] , int n , int * max , int * min)
{
int i , m , s ;
for(i = 0 ; a < 0 && i < n ; i ++) ;
for(m = 1 , * max = * min = s = a , i ++ ; i < n ; i ++) {
if(a >= 0) {
if(a > * max) * max = a ;
else if(a < * min) * min = a ;
s += a ;
m ++ ;
}
}
return 1.0 * s / m ;
}
void print(int a[] , int n) ;
{
int i ;
for(i = 0 ; i < n ; i ++) if(a >= 0) printf("%d %d\n" , i + 1 , a) ;
} jackz007 发表于 2021-11-30 20:05
大佬,那下面那个print(a, n);咋定义
黑月黄龙 发表于 2021-11-30 20:07
大佬,那下面那个print(a, n);咋定义
2 楼的代码已经更新 #include <stdio.h>
int max = -2147483648, min = 2147483647;
float avg;
void function(int n, int arr){
int k = 0, sum = 0;
for(size_t i = 0; i < n; i++){
if(arr >= 0){
max = max > arr ? max : arr;
min = min < arr ? min : arr;
sum += arr;
k++;
}
}
avg = (float)sum/k;
}
int main()
{
int n;
printf("请输入本班学号的最大值:");
scanf("%d", &n);
int arr;
printf("请输入学生成绩:");
for(size_t i = 0; i < n; i++) scanf("%d", &arr);
function(n, arr);
printf("最高分为:%d\n最低分为:%d\n平均分为:%.2f", max, min, avg);
return 0;
}
页:
[1]