题目:
输入一个二维数组 M[12][12]
,根据输入的要求,求出二维数组中某一行的元素的平均值或元素的和。
输入格式
第一行输入整数 L
,表示所求的具体行数(行数从 0
开始计数)。
第二行包含一个大写字母,若为 S,则表示需要求出第 L
行的元素的和,若为 M,则表示需要求出第 L
行的元素的平均值。
接下来 12
行,每行包含 12 个用空格隔开的浮点数,表示这个二维数组,其中第 i+1 行的第 j+1 个数表示数组元素 M[i][j]
。
输出格式
输出一个数,表示所求的平均数或元素的和的值,保留一位小数。
数据范围
−100.0≤M[i][j]≤100.0
输入样例:
7
S
8.3 -9.4 -5.6 9.9 2.2 3.2 6.9 7.7 -2.9 -6.3 3.9 -1.4
-0.5 4.3 -0.3 2.3 0.7 -3.1 -6.3 5.7 -7.7 -3.7 9.7 3.8
5.8 -9.1 3.5 7.0 2.5 -2.3 6.9 2.7 5.8 -4.6 -7.8 4.3
-1.7 -8.9 -2.6 7.5 -9.6 6.4 -4.7 -8.0 0.6 6.7 -1.8 -0.4
-9.8 8.9 -3.8 -2.1 5.8 -9.4 1.3 6.3 -1.3 -6.3 -6.6 8.8
-6.3 -7.2 -6.3 -5.9 6.2 9.3 2.0 -4.3 2.7 3.6 -4.6 8.7
3.8 7.4 8.7 -2.8 6.0 -9.2 1.9 3.1 -7.2 -6.0 9.7 -8.4
-9.8 6.6 8.6 2.3 1.1 -2.9 6.6 -1.5 2.1 -5.1 6.4 -7.5
-0.6 -1.6 9.5 -6.6 3.0 3.4 -7.5 -7.9 3.1 2.0 1.7 -7.6
-9.0 9.4 6.6 -0.2 1.4 6.5 8.6 2.0 -1.3 0.2 4.0 -2.4
-7.3 -6.3 -8.6 -7.5 8.5 1.4 -3.3 7.1 0.8 3.3 3.0 0.1
3.3 9.0 1.7 5.2 -3.7 8.9 3.8 -7.4 -2.8 0.6 -2.4 7.1
输出样例:
6.9
解题:
`
int main (){
int L;
cin >> L;
char C;
cin >> C;
float M[12][12];
int i,j;
for(i = 0;i <= 11;i++){
for(j = 0;j <= 11;j++){
cin >> M[i][j];
}
}
int x;
float Sum;
float Mean;
if(C == 'S'){
for(x = 0,Sum = 0;x <= 11;x++){
Sum = Sum + M[L][x];
}
printf("%.1f",Sum);
}
else if(C == 'M'){
for(x = 0,Mean = 0;x <= 11;x++){
Mean = Mean + M[L][x];
}
Mean = (Mean/12);
if(Mean < 0){
Mean = Mean - 0.01;
}
else if(Mean >= 0){
Mean = Mean + 0.01;
//四舍五入问题,在运行过程中,通过调整输出位数,我发现代码运行时,是五舍六入,因此需要进行+1转化为四舍五入
}
printf("%.1f",Mean);
}
return 0;
}`