以下代码中,我先是声明了全局变量n,m,此时它们的值为0
然后我声明了函数arrange和函数score,在这里面都用到了变量m
在主函数中我才读入了n、m的值,但是前面的两个函数却是根据主函数的值来运算的
因此这个程序中,全局变量m到底是如何参与运算的?还是说,我前面的两个函数中m仅是一个“工具人”变量,当程序运行至主函数时又再次运行前面的两个函数?
#include<iostream>
#include<iomanip>
#include<algorithm>
using namespace std;
int n, m;double grade;
double maxscore;
double arrange(double S[])
{
double sum = 0; for (int i = 1; i < m-1; i++)
{
sum += S[i];
}
return sum /((double)m-2);
}
void score()
{
double A[20];
for (int i = 0; i < m; i++)
{
cin >> A[i];
}
sort(A, A + m);
grade = arrange(A);
}
int main()
{
cin >> n >> m;
for (int i = 0; i < n; i++)
{
score();
if (maxscore<grade)
{
maxscore = grade;
}
}
cout << setiosflags(ios::fixed) << setprecision(2) << maxscore;
return 0;
}