1. 程式人生 > 其它 >SWUST OJ #74矩陣相乘

SWUST OJ #74矩陣相乘

技術標籤:C語言程式設計c語言

swust oj 74

題目描述

將兩個給定的距陣(3*3)相乘得到另一個距陣並將其打印出來。

輸入

在這裡插入圖片描述

輸出

在這裡插入圖片描述

思路

(1)明白矩陣相乘的定義(不會的,可以自己搜尋一下)
(2)初步程式碼

#include<stdio.h>
int main()
{
	int a[3][3],b[3][3],c[3][3]={0};
	int line,list,s;
	for(line=0;line<3;line++)
	for(list=0;list<3;list++)
	for(s=0;s<3;s++)
	c[line][s]+=a[line]
[list]*b[list][s]; return 0; }

(3)明白題目的要求是需要自己輸入數字,即需要scanf()語句,由此可知需要利用巢狀語句,用兩個for語句輸入一個二維陣列,同時輸出時也要用for語句。
(4)因為要求矩陣每相鄰兩個數之間有空格,所以輸出的時候在%d後面打一個空格。

樣例輸入

在這裡插入圖片描述

樣例輸出

在這裡插入圖片描述

原始碼

#include<stdio.h>
int main()
{
	int a[3][3],b[3][3],c[3][3]={0};
	int line,list,s;
	for(line=0;line<3;line++)
	{
		for(list=0;list<
3;list++) { scanf("%d",&a[line][list]); } } for(line=0;line<3;line++) { for(list=0;list<3;list++) { scanf("%d",&b[line][list]); } } for(line=0;line<3;line++) { for(list=0;list<3;list++) { for(s=0;s<3;s++) { c[line][s]+=a[line]
[list]*b[list][s]; } } } for(line=0;line<3;line++) { for(list=0;list<3;list++) { printf("%d ",c[line][list]); } printf("\n"); } return 0; }