用指针变量实现输入学生人数和成绩,输出平均成绩,最高分和最低分

用指针变量的方法来实现输出最高分和最低分,这段代码为什么无法输出最高分和最低分

img

代码没什么问题,最后输出最大最小值语句输出格式用 %d 错误,应是 %f,供参考:

img

因为打印最高分和最低分使用的是%d,所以打印的结果就是错的,打印浮点数使用%f就可以了。

修改如下:


#include <stdio.h>

int main(void){
    
    int n;
    float a[100],max,min;
    float *p,sum=0,ave;
    
    printf("输入学生人数:");
    scanf("%d",&n);
    
    for(p=a;p<a+n;p++){
        scanf("%f",p);
    }
    
    p=a;
    max=a[0];
    min=a[0];
    for(;p<a+n;p++){
        
        sum=sum+*p;
        if(*p>max){
            max=*p;
        }
        
        if(*p<min){
            min=*p;
        }
    }
    
    ave=sum/n;
    printf("平均成绩:%.2f\n",ave);
    // 打印float类型的最大值和最小值使用%f来打印 
    printf("最高分:%.2f\n",max);
    printf("最低风:%.2f\n",min);
    
    return 0;
} 

img