二维数组,没有报错,输不出结果


#include <stdio.h>
int main
{
    int a[3][3],*p;
    int i,j,t;
    p=a[0];
    printf("Input 3*3 matrix:\n");
    for(i=0;i<3;i++)
    scanf("%d%d%d ",p+i*3+0,p+i*3+1,p+i*3+2);
    for(i=0;i<3;i++)
    //{
        for(j=i;j<3;j++)
        {
            t=p[i*3+j];
            p[i*3+j]=p[j*3+i];
            p[j*3+i]=t;
        }
    //}
    printf("Transposition Matrix:\n");
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        //{
            printf("%d",*(p+i*3+j));
        //}
        printf("\n");
    }
}

main后面缺(), scanf("%d%d%d ",p+i3+0,p+i3+1,p+i*3+2); %d 后面多了‘ ‘空格,修改见注释,供参考:

#include <stdio.h>
int main()         //int main 修改
{
    int a[3][3],*p;
    int i,j,t;
    p = a[0];
    printf("Input 3*3 matrix:\n");
    for (i = 0; i < 3; i++)
    scanf("%d%d%d",p + i * 3 + 0,p + i * 3 + 1,p + i * 3 + 2);
    //scanf("%d%d%d ",p + i * 3 + 0,p + i * 3 + 1,p + i * 3 + 2); 修改
    for (i = 0; i < 3; i++)
        //{
            for (j = i; j < 3; j++)
            {
                t = p[i * 3 + j];
                p[i * 3 + j] = p[j * 3 + i];
                p[j * 3 + i] = t;
            }
    //}
    printf("Transposition Matrix:\n");
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
            //{
                printf("%d ",*(p + i * 3 + j)); //修改 printf("%d",*(p + i * 3 + j));
        //}
        printf("\n");
    }
    return 0;
}

scanf的参数没加地址符