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
}