1. 程式人生 > >ACMNO.19 C語言-對角求和 求一個3×3矩陣對角線元素之和。 輸入 矩陣 輸出 主對角線 副對角線 元素和 樣例輸入 1 2 3 1 1 1 3 2 1 樣例輸出 3 7

ACMNO.19 C語言-對角求和 求一個3×3矩陣對角線元素之和。 輸入 矩陣 輸出 主對角線 副對角線 元素和 樣例輸入 1 2 3 1 1 1 3 2 1 樣例輸出 3 7

這個我做了改進,可以實現NXN的矩陣。求出對角線之和!
只需要修改定義的define z的值就好!
接下來,進入正題!

題目描述:

求一個3×3矩陣對角線元素之和。

輸入

矩陣

輸出

主對角線 副對角線 元素和

樣例輸入

1 2 3
1 1 1
3 2 1

樣例輸出

3 7

來源/分類

C語言 

題目截圖:
在這裡插入圖片描述
思路:

直接修改#define z 
修改後面的數值,就可以改變矩陣的大小啦!
本例子給出的是矩陣為4!


先來一個輸入的程式:
for(i=0;i<z;i++)
	{
		for(j=0;j<z;j++)
		{
			cin>>a[i][j];
		}
	}
接下來進行對角線求和!
兩個下標相等的是:
if(i==j)
		{s+=a[i][j];}
然後是斜對角線的相加!
if((i+j)==z-1)//下標減去1!就是斜對角線!
		{w+=a[i][j];}
然後就OK啦!

程式碼:

#include<iostream>
using namespace std;
#define z 4
int main()
{
	int a[z][z]={0};int i,j;int s=0;int w=0;
	for(i=0;i<z;i++)
	{
		for(j=0;j<z;j++)
	{
		cin>>a[i][j];
	}
	}
	for(i=0;i<z;i++)
	{
		for(j=0;j<z;j++)
	{
		if(i==j)
		{s+=a[i][j];}
		if((i+j)==z-1)
		{w+=a[i][j];}

	}
		//cout<<endl;
	}
	cout<<s<<" "<<w;
}

程式碼截圖:
在這裡插入圖片描述
執行結果:
在這裡插入圖片描述
OJ結果:
在這裡插入圖片描述