问题描述
从键盘输入一个3乘3的矩阵,以对角线为对称轴将两边元素相加并存储于对角线右下的对应位置,右上角元素置0
标准输入:
1 2 3
4 5 6
7 8 9
标准输出:
1 0 0
6 5 0
10 14 9
解题思路
定义一个二维数组充当矩阵,两层for循环先负责输入数据,两层for循环再对二维数组进行处理,由题目可知,只需要对i>j的部分进行处理,且值为a[i][j]+a[j][i],print函数负责输出二维数组,在输出的时候再把i<j的部分置为0即可
解题代码
#include<stdio.h>
#include<stdlib.h>
void print(int a[3][3]){
int i,j;
for(i = 0; i < 3; i++){
for(j = 0; j < 3; j++){
if(i < j)
a[i][j] = 0;
printf("%d",a[i][j]);
if(j < 2) printf(" ");
}
printf("\n");
}
}
int main(){
int a[3][3],i,j;
for(i = 0; i < 3; i++){
for(j = 0; j < 3; j++){
scanf("%d",&a[i][j]);
}
}
for(i = 0; i < 3; i++){
for(j = 0; j < 3; j++){
if(i > j)
a[i][j] += a[j][i];
}
}
print(a);
printf("\n");
return 0;
}
扫描二维码关注公众号,回复:
14582675 查看本文章