问题描述:输入两个N阶方阵,进行加减运算。要求:矩阵的加减法利用函数实现。
输入形式
从标准输入读取输入。第一行只有一个整数N(1<N<10),代表矩阵的阶数。接下来 是一个矩阵,N行N列(矩阵元素可能是正负整数)。
然后一行只含一个字符’+'或‘-’,代表加减操作。
然后用同样的方式输入另一个矩阵。
输入形式:屏幕上输出两个矩阵的操作结果
输出N行,每行对应矩阵在该行上的所有元素,每一行末均输出一个回车符。
每个元素占五个字符宽度,向右对齐,不足部分补空格。
#include <stdio.h>
#include <stdlib.h>
#define N 10
void InputMatrix(int a[N][N],int n);
int main()
{
int i,j;
int a[N][N],b[N][N];
int n;
char ch;
scanf("%d",&n);
InputMatrix(a,n);
scanf(" %c",&ch);//此处输入时在%c前面加一个空格来消除回车符对输入的影响
InputMatrix(b,n);
if(ch=='+')
{
AddMatrix(a,b,n);
OnputMatrix(a,n);
}
else if(ch=='-')
{
SubMatrix(a,b,n);
OnputMatrix(a,n);
}
}
void InputMatrix (int a[N][N],int n)//输入n维数组
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
printf("\n");
}
}
void AddMatrix(int a[N][N],int b[N][N],int n)//求两个n维数组的和
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=a[i][j]+b[i][j];
}
printf("\n");
}
}
void SubMatrix(int a[N][N],int b[N][N],int n)//求两个n维数组的差
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=a[i][j]-b[i][j];
}
printf("\n");
}
}
void OnputMatrix (int a[N][N],int n)//输出n维数组
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
}