注册 登录
编程论坛 C语言论坛

求大佬帮我看看指出我(初学者)的问题

wfx753951 发布于 2020-02-01 20:19, 1965 次点击
程序编译没有问题,运行输入数组之后没有后续反应,求大佬帮我改改
#include <stdio.h>
void sum(int *a[])       //(1)矩阵A的量对角线之和
{
    int i,j,sum=0;
    for(i=0;i<=3;i++)
        for(j=0;j<=3;j++)
        {   
            if((i+j)==3 || i==j)
            {
                sum+=a[i][j];
            }
        }
    printf("sum=%d\n",sum);
}

void revert(int *a[])   /*(2)矩阵A的转置*/
{
    int i,j,c[4][4]={0};
    for(i=0;i<=3;i++)
    for(j=0;j<=3;j++)
    {
        c[j][i]=a[i][j];
    }
    for(i=0;i<=3;i++)
        for(j=0;j<=3;j++)
        {
            printf("A的转置矩阵为:%d ",c[i][j]);
            printf("\n");
        }
}
void main()
{
    int i,j,a[4][4];
    printf("输入一个4*4的矩阵A:");
    for(i=0;i<=3;i++)
    for(j=0;j<=3;j++)
    {
        scanf("%d",&a[i][j]);
    }
    sum(a);
    revert(a);
}
5 回复
#2
叶纤2020-02-01 23:47
#include <stdio.h>
void sum(int a[][4])       //(1)矩阵A的量对角线之和
{
    int i,j,sum=0;
    for(i=0;i<=3;i++)
        for(j=0;j<=3;j++)
        {   
            if((i+j)==3 || i==j)
            {
                sum+=a[i][j];
            }
        }
    printf("sum=%d\n",sum);
}

void revert(int a[][4])   /*(2)矩阵A的转置*/
{
    int i,j,c[4][4]={0};
    for(i=0;i<=3;i++)
    for(j=0;j<=3;j++)
    {
        c[j][i]=a[i][j];
    }
    for(i=0;i<=3;i++)
        for(j=0;j<=3;j++)
        {
            printf("A的转置矩阵为:%d ",c[i][j]);
            printf("\n");
        }
}
int main()
{
    int i,j,a[4][4];
    printf("输入一个4*4的矩阵A:");
    for(i=0;i<=3;i++)
    for(j=0;j<=3;j++)
    {
        scanf("%d",&a[i][j]);
    }
   sum(a);
 revert(a);
}
#3
叶纤2020-02-01 23:49
只有本站会员才能查看附件,请 登录
#4
纯蓝之刃2020-02-02 08:12
程序代码:
#include <stdio.h>
void sum(int a[][4])       //(1)矩阵A的量对角线之和
{
    int i,j,sum=0;
    for(i=0;i<=3;i++)
        for(j=0;j<=3;j++)
            if((i+j)==3 || i==j)
                sum+=a[i][j];

    printf("sum=%d\n",sum);
}

void revert(int a[][4])   /*(2)矩阵A的转置*/
{
    int i,j;
    printf("A的转置矩阵为:\n");
    for(i=0;i<=3;i++)
    {
        for(j=0;j<=3;j++)
            printf("%4d",a[j][i]);
        printf("\n");
    }
}
int main()
{
    int i,j,a[4][4];
    printf("输入一个4*4的矩阵A:\n");
    for(i=0;i<=3;i++)
        for(j=0;j<=3;j++)
            scanf("%d",&a[i][j]);
    sum(a);
    revert(a);
}
#5
wfx7539512020-02-04 14:01
回复 4楼 纯蓝之刃
谢谢你,我还想问您一个问题,为什么形参那里要改成a[][4]?
#6
纯蓝之刃2020-02-04 16:48
a[][4]相当于每行有四个数据,行数不限。
1