用指针变量的方法来实现输出最高分和最低分,这段代码为什么无法输出最高分和最低分
代码没什么问题,最后输出最大最小值语句输出格式用 %d 错误,应是 %f,供参考:
因为打印最高分和最低分使用的是%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;
}