C语言行列按位互换

Python017

C语言行列按位互换,第1张

#include<stdio.h>

void main()

{

int a[2][3]={{1,2,3},{4,5,6}}

int b[3][2],i,j

printf("array a:\n")

for(i=0i<=1i++)

{

for(j=0j<=2j++)

{

printf("%d",a[i][j])

b[j][i]=a[i][j]

}

printf("\n")

}

printf("array b:\n")//括号内你缺少右边的引号

for(i=0i<=2i++)//注意i的取值

{

for(j=0j<=1j++)//注意j的取值,i,j的值你刚好弄反了

{

printf("%d",b[i][j])

}

printf("\n")//你缺少这行代码,不能有效的显示

}

}

我已经调试过了,能正确运行,如果不行的话,提出你具体的问题!

由于行、列不确定,所以要动态处理。举例代码如下:

//#include "stdafx.h"//If the vc++6.0, with this line.

#include "stdio.h"

#include "stdlib.h"

int main(void){

    int **a,**b,m,n,i,j

    while(1){//保证输入的行、列数为正数

        printf("Please enter m & n(int m>0,n>0)...\n")

        if(scanf("%d%d",&m,&n),m>0 && n>0)

            break

        printf("Error, redo: ")

    }

    a=(int **)malloc((j=sizeof(int))*m)

    b=(int **)malloc(j*n)

    if(a==NULL || b==NULL){

        printf("Application memory failure...\n")

        exit(0)

    }

    for(i=0i<mi++)

        if((a[i]=(int *)malloc(j*n))==NULL){

            printf("Failed to create the array...\n")

            exit(0)

        }

for(i=0i<ni++)

    if((b[i]=(int *)malloc(j*m))==NULL){

        printf("Failed to create the array...\n")

        exit(0)

    }

    for(i=0i<mi++)

        for(j=0j<nscanf("%d",a[i]+j++))

    printf("\n")

    for(i=0i<ni++){

        for(j=0j<mj++)

            printf("%d ",b[i][j]=a[j][i])//a的行、列互换后存入b

        printf("\n")

    }

    for(i=0i<mfree(a[i++]))

    free(a)

    for(i=0i<nfree(b[i++]))

    free(b)

    return 0

}