题目描述
输入一个二维数组 M[12][12],根据输入的要求,求出二维数组的右上半部分元素的平均值或元素的和。
理解一
这道题可以不用二维数组,可以认为有一个虚拟的二维数组,初始的行和列只需满足右上半部分的条件即可,然后寻找初始的row和col之间的关系,做出判断,相加。在算平均数的时候,一定要注意一共有多少个数
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
double b,sum=0;
char c;
int row=0,col=1;
cin>>c;
for(int i=0;i<12;i++){
for(int j=0;j<12;j++){
cin>>b;
if(i==row&&j==col){
sum+=b;
col++;
}
}
row++;
col=row+1;
}
if(c=='S')printf("%.1lf",sum);
else printf("%.1lf",sum/66);
return 0;
}
理解二
可以只用col,判断j是否大于col,在外层循环对col进行自增
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
double b,sum=0;
char c;
int col=1;
cin>>c;
for(int i=0;i<12;i++){
for(int j=0;j<12;j++){
cin>>b;
if(j>=col)sum+=b;
}
col++;
}
if(c=='S')printf("%.1lf",sum);
else printf("%.1lf",sum/66);
return 0;
}