关于外部变量的问题?
#include "stdafx.h"#define N 5
float max,min;
float avg(float a[],int n);
int main(int argc, char* argv[])
{
float score[N];
int i;
for(i = 0;i < N;i++)
{
printf("请输入第%d个学生成绩: ",i + 1);
scanf("%f",&score[i]);
}
printf("max = %.2f min = %.2f\n",max,min);
printf("平均成绩: %.2f\n最高成绩: %.2f\n最低成绩: %.2f\n",avg(score,N),max,min);
return 0;
}
float avg(float a[],int n)
{
float sum = 0.0f;
int i;
max = min = a[0];
printf("max = %.2f\nmin = %.2f\n",max,min);
for(i = 0;i < n;i++)
{
sum += a[i];
if(a[i] > max)
max = a[i];
if(a[i] < min)
min = a[i];
}
printf("max = %.2f\nmin = %.2f\n",max,min);
return sum / n;
}
输入以下数据:
1
2
3
4
5
结果得出 最大值max=0,最小值min=0
太奇怪了!!max 和 min 是外部变量,已经在函数内部里修改了,为什么还会得出0啊??