数据结构矩阵

矩阵加减

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

转载于:https://www.cnblogs.com/javalv/p/10824314.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值