关于全局变量赋值运行顺序的疑惑
查看原帖
关于全局变量赋值运行顺序的疑惑
492153
nanzjz1楼主2021/5/29 16:47

以下代码中,我先是声明了全局变量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;
}
2021/5/29 16:47
加载中...