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

标签 c matrix

矩阵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/

相关文章:

c - #define 可变参数用于调试

c - 在 C 中存储二维数组的数组

c++ - 如何在 CUDA 中分别获取复数矩阵的实部和虚部?

matlab - 在邻接矩阵中形成循环的节点 (Matlab)

我可以从传感器读取值,然后将其添加到 RF24l01 网络的 JSON 字符串中吗

c - 访问结构体内部的结构体指针数组

c - strtok() 在 C99 中返回错误值?

c - 如果我们在链表中查找循环时改变慢指针和快指针的跳数会怎样?

arrays - 转置前导维度 N 的一维数组

json - 将 R 中的矩阵/数据帧转换为具有一些约束的 JSON 对象