作业帮 > 综合 > 作业

转置矩阵#include <stdio.h>  #include <stdlib.h>

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 23:10:59
转置矩阵
#include <stdio.h>  
#include <stdlib.h>  
void able(int b[][],int a);

int main ()
{
    int a,b[a][a];
    scanf("%d",&a);
    able(b[a][a],a);
    return 0;
}
void able(int b[][],int a)
{
    int i,m,c[a][a],*(p)[a],*(q)[a];

    for(i=0; i<a; i++)
        for(m=0; m<a; m++)
            scanf("%d",&b[i][m]);
    p=b;
    for(i=0; i<a; i++)
        for(m=0; m<a; m++)
            *(q+i)+m=*(p+m)+i;

    for(i=0; i<a; i++)
        for(m=0; m<a; m++)
            printf("%d",c[i][m]);
}
int a,b[a][a]; 数组定义时不能有变量
可以这样 int b[10][10]; 如果觉得小了就定大点
再问: 变长数组。。不行么
再答: 不行 可以用容器或链表代替(就是麻烦)
再问: void able(int b[][100],int a){    int k,i,m,c[100][100],*(p)[a],*(q)[a];
    for(i=0; i<a; i++)        for(m=0; m<a; m++)            scanf("%d",&b[i][m]);    p=b;
p=b; 是错的。。。想知道怎么让p指向b【0】【0】
再答: *(p)[a],*(q)[a]; --> *(p)[10],*(q)[10]; p = b;