绿色区域是右上三角和左上三角的公共部分。所以我采用了左上角的遍历方法。
左上角(次对角线的上面)的规律是:行号+列号<N。
右上角(主对角线的上面)的规律是:行号<列号。
所以我写出了if(i+j<12 && i<j)条件。
#include<iostream>
#include<iomanip>
using namespace std;
const int N=12;
double a[N][N];
int main()
{
//freopen("xxx.in","r",stdin);
//freopen("yyy.out","w",stdout);
char v;
double sum=0;
int gs=0;
cin >> v;
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
cin >> a[i][j];
}
}
for(int i=0;i<N;i++)
{
for(int j=0;j<N-i-1;j++)
{
if(i+j<12 && i<j)
{
sum+=a[i][j];
gs++;
}
}
}
if(v=='M')
cout << fixed << setprecision(1) << sum/gs << endl;
else
cout << sum << endl;
//fclose(stdin);
//fclose(stdout);
return 0;
}