gpt4 book ai didi

c - 在C编程中需要将每个3个矩阵中的3个最大数字放入1个单矩阵中

转载 作者:行者123 更新时间:2023-11-30 20:23:21 25 4
gpt4 key购买 nike

矩阵A

1 2 3 
4 5 6
7 8 9

矩阵B

1 2 3 
4 5 6
7 8 9

矩阵C

1 2 3 
4 5 6
7 8 9

所有矩阵的最大行数为 3 6 9

所以我想让最终的矩阵看起来像这样

3 6 9
3 6 9
3 6 9

到目前为止,我做到了这一点。下面的代码仅适用于 1 个矩阵,它们看起来都一样。

int a[10][10],b[10][10],c[10][10],x[10][10],maxa[10],maxb[10],maxc[10];
int i,j,n=3;

printf("Matrix A\n");
for(i=0; i<n; i++){
for(j=0; j<n; j++){
scanf("%i", &a[i][j]);
}
}

for(i=0; i<n; i++,puts("")){
for(j=0; j<n; j++){
printf("%3i", a[i][j]);
}
}

maxa[10]=a[0][0];
for(i=0; i<n; i++){
for(j=0; j<n; j++){
if(maxa[10]<a[i][j]){
maxa[10]=a[i][j];
}
}
printf("Max nr A[%i,%i] = %i\n",i+1,j, maxa[10]);
}

这就是问题所在。它没有向我显示 3 个最大行号。只有最高的。

for(i=0; i<n; i++){
printf("%d", maxa[10]);
}

至于所需的矩阵,我选择了这个。

for(i=0; i<n; i++,puts("")){
for(j=0; j<n; j++){
x[i][j]=maxa[i]+maxb[i]+maxc[i];
printf("%3i", x[i][j]);
}
}

它给了我这个结果。

27 45 45
45 45 45
45 45 45

我有疑问。为什么它给我这个结果?它如何显示矩阵中的所有最大行数?如何在新矩阵中插入所有最大行数?

最佳答案

a b c是你的三个矩阵,result[][]是结果矩阵。然后,您可以通过将每行的最大值分配给其相应的索引来创建最终矩阵。

我们可以将这种方法推广到任意数量的矩阵(假设 Matrix-size==no_of_matrixes)。设 A0,A1,A1,A3...An-1都是n x n矩阵,那么<的第i行的最大值strong>Aj 第一个矩阵 (0<= i,j < n) 将被分配给结果矩阵的 (j , i) 索引。

这是代码:

int a[3][3],b[3][3],c[3][3],result[3][3];
int max,n=3;

//for first row
for(i=0;i<n;i++)
{
max=0;
//calculating max value for each row
for(j=0; j<n; j++){
if(max<a[i][j])
max=a[i][j];
}
result[0][i]=max;
}

//for second row
for(i=0;i<n;i++)
{
max=0;
//calculating max value for each row
for(j=0; j<n; j++){
if(max<b[i][j])
max=b[i][j];
}
result[1][i]=max;
}

//for third row
for(i=0;i<n;i++)
{
max=0;
//calculating max value for each row
for(j=0; j<n; j++){
if(max<c[i][j])
max=c[i][j];
}
result[2][i]=max;
}

关于c - 在C编程中需要将每个3个矩阵中的3个最大数字放入1个单矩阵中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36251279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com