数据结构矩阵

矩阵加减

include<stdio.h>

main(){
int i,j;
printf("请输入行和列长度:");
scanf("%d%d",&i,&j);
int a[i][j],b[i][j],c[i][j];
int m,n;
printf("请输入A矩阵的元素:");
for(m=0;m<i;m++){
for(n=0;n<j;n++){
scanf("%d",&a[m][n]);
}
}
printf("请输入B矩阵的元素:");
for(m=0;m<i;m++){
for(n=0;n<j;n++){
scanf("%d",&b[m][n]);
}
}
//输出A矩阵
printf("\n");
for(m=0;m<i;m++){
printf("\n");
for(n=0;n<j;n++){
printf("%d\t",a[m][n]);
}
}
//输出B矩阵
printf("\n");
for(m=0;m<i;m++){
printf("\n");
for(n=0;n<j;n++){
printf("%d\t",b[m][n]);
}
}
//两矩阵相加
printf("\n");
for(m=0;m<i;m++){
printf("\n");
for(n=0;n<j;n++){
printf("%d\t",a[m][n]+b[m][n]);
}
}
//两矩阵相减
printf("\n");
for(m=0;m<i;m++){
printf("\n");
for(n=0;n<j;n++){
printf("%d\t",a[m][n]-b[m][n]);
}
}
//两矩阵相乘,两行列式为方阵或a的行与b的列相等
printf("\n");
if(i==j){
for(m=0;m<i;m++){
for(n=0;n<j;n++){
c[m][n]=0;
for(int k=0;k<i;k++){
c[m][n]=c[m][n]+a[m][k]*b[k][m];
}
}
}
printf("\n");
for(m=0;m<i;m++){
printf("\n");
for(n=0;n<j;n++){
printf("%d\t",c[m][n]);
}
}
}
}
请输入行和列长度:3
3
请输入A矩阵的元素:1
2
3
4
5
6
7
8
9
请输入B矩阵的元素:3
4
5
6
7
8
9
7
5

1 2 3
4 5 6
7 8 9

3 4 5
6 7 8
9 7 5

4 6 8
10 12 14
16 15 14

-2 -2 -2
-2 -2 -2
-2 1 4

42 42 42
93 93 93
144 144 144

include<stdio.h>

main(){
//a矩阵的行,必须等于b矩阵的列
int i,j;
printf("请输入行和列长度:");
scanf("%d%d",&i,&j);
int a[i][j],b[j][i],c1[i][i],c2[j][j];
int m,n;
printf("请输入A矩阵的元素:");
for(m=0;m<i;m++){
for(n=0;n<j;n++){
scanf("%d",&a[m][n]);
}
}
printf("请输入B矩阵的元素:");
for(m=0;m<j;m++){
for(n=0;n<i;n++){
scanf("%d",&b[m][n]);
}
}
//输出A矩阵
printf("\n");
for(m=0;m<i;m++){
printf("\n");
for(n=0;n<j;n++){
printf("%d\t",a[m][n]);
}
}
//输出B矩阵
printf("\n");
for(m=0;m<j;m++){
printf("\n");
for(n=0;n<i;n++){
printf("%d\t",b[m][n]);
}
}
//矩阵相乘
for(m=0;m<i;m++){
for(n=0;n<i;n++){
c1[m][n]=0;
for(int k=0;k<j;k++) {
c1[m][n]=c1[m][n]+a[m][k]b[k][n];
}
}
}
for(m=0;m<j;m++){
for(n=0;n<j;n++){
c2[m][n]=0;
for(int k=0;k<i;k++) {
c2[m][n]=c2[m][n]+b[m][k]
a[k][n];
}
}
}
printf("\n");
for(m=0;m<i;m++){
printf("\n");
for(n=0;n<i;n++){
printf("%d\t",c1[m][n]);
}
}
printf("\n");
for(m=0;m<j;m++){
printf("\n");
for(n=0;n<j;n++){
printf("%d\t",c2[m][n]);
}
}
}
请输入行和列长度:3
2
请输入A矩阵的元素:1
2
3
4
5
6
请输入B矩阵的元素:7
1
2
3
4
5

1 2
3 4
5 6

7 1 2
3 4 5

13 9 12
33 19 26
53 29 40

20 30
40 52

include<stdio.h>

main(){
int k;
printf("请输入方阵的行和列:");
scanf("%d",&k);
int a[k][k];
int i,j;
//上三角方阵
printf("请输入上三角方阵的元素:\n");
for(i=0;i<k;i++){
for(j=0;j<k;j++){
if(i>j){
a[i][j]=0;
}
else scanf("%d",&a[i][j]);
}
}
for(i=0;i<k;i++){
printf("\n");
for(j=0;j<k;j++){
printf("%d\t",a[i][j]);
}
}
//下三角方阵
printf("\n");
printf("请输入下三角方阵的元素:\n");
for(i=0;i<k;i++){
for(j=0;j<k;j++){
if(j>i){
a[i][j]=0;
}
else scanf("%d",&a[i][j]);
}
}
for(i=0;i<k;i++){
printf("\n");
for(j=0;j<k;j++){
printf("%d\t",a[i][j]);
}
}
//对称矩阵
printf("\n");
printf("请输入对称矩阵的元素:\n");
for(i=0;i<k;i++){
for(j=0;j<k;j++){
if(i>j){
a[i][j]=a[j][i];
}
else scanf("%d",&a[i][j]);
}
}
for(i=0;i<k;i++){
printf("\n");
for(j=0;j<k;j++){
printf("%d\t",a[i][j]);
}
}
//三对角矩阵
printf("\n");
printf("请输入三对角矩阵的元素:\n");
for(i=0;i<k;i++){
for(j=0;j<k;j++){
if(i>(j+1)||j>(i+1)){
a[i][j]=0;
}
else scanf("%d",&a[i][j]);
}
}
for(i=0;i<k;i++){
printf("\n");
for(j=0;j<k;j++){
printf("%d\t",a[i][j]);
}
}
}
请输入方阵的行和列:3
请输入上三角方阵的元素:
1
2
3
4
5
6

1 2 3
0 4 5
0 0 6
请输入下三角方阵的元素:
3
4
5
6
7
8

3 0 0
4 5 0
6 7 8
请输入对称矩阵的元素:
9
2
3
4
5
6

9 2 3
2 4 5
3 5 6
请输入三对角矩阵的元素:
7
6
5
4
43
3
2

7 6 0
5 4 43
0 3 2

posted @ 2019-05-07 18:02  龙吕  阅读(200)  评论(0编辑  收藏  举报