研究生复试上机编程练习2

问题描述

从键盘输入一个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 查看本文章

猜你喜欢

转载自blog.csdn.net/weixin_44572229/article/details/129288915
今日推荐