谢谢前辈们帮我看一下那里错了!
main(){ int a[2][3],b[3][2];
int i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<2;i++)
for(j=0;j<3;j++)
b[j][i]=a[i][j];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
printf("%d",b[j][i]);
}
----------------解决方案--------------------------------------------------------
是不是要输出转置?
#include "stdio.h"
void main()
{ int a[2][3];
int i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<2;i++){
for(j=0;j<3;j++)
printf("%d ",a[i][j]);
printf("\n");
}
printf("转置后为:\n");
for(j=0;j<3;j++){
for(i=0;i<2;i++)
printf("%d ",a[i][j]);
printf("\n");}
}
----------------解决方案--------------------------------------------------------
#include"stdio.h"
main()
{
int a[2][3],b[3][2];
int i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<2;i++)
for(j=0;j<3;j++)
b[j][i]=a[i][j];
for(j=0;j<3;j++)
for(i=0;i<2;i++)
printf("%5d\n",b[j][i]);
getchar();
}
为什么这么做!运行还是不对呀!但我想了!我的思维好像并没有错呀!
请那位高人给我讲讲!到底是那个地方不对!
----------------解决方案--------------------------------------------------------
#include "stdio.h"
int main(void)
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2] , i , j ;
printf("array a:\n") ;
for(i=0 ; i<2 ;i++)
{ for(j=0 ; j<3 ; j++)
printf("%5d", a[i][j]);
printf("\n") ;
}
for(i=0 ; i<2 ; i++)
{
for(j=0 ; j<3 ; j++)
b[j][i]=a[i][j] ;
printf("array b:\n") ;}
for(i=0 ; i<3 ; i++)
{ for(j=0 ; j<2 ; j++)
printf("%5d", b[i][j]);
printf("\n") ;
}
return 0;
}
----------------解决方案--------------------------------------------------------
不知是不是楼主的意思
----------------解决方案--------------------------------------------------------
#include"stdio.h"
main()
{
int a[2][3],b[3][2];
int i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<2;i++)
for(j=0;j<3;j++)
b[j][i]=a[i][j];
printf("%5d",a[i][j]);
for(j=0;j<3;j++)
for(i=0;i<2;i++)
printf("%5d",b[j][i]);
getchar();
}
我在这加了FOR()下面加了一个:printf("%5d",a[i][j]);
我输入:1 2 3 4 5 6
结果为:5 1 4 2 5 3 6
多了一个“5”这是怎么回事!
给我看看!
----------------解决方案--------------------------------------------------------
#include"stdio.h"
main()
{
int a[2][3],b[3][2];
int i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<2;i++)
for(j=0;j<3;j++)
b[j][i]=a[i][j];
printf("%5d",a[i][j]);
for(j=0;j<3;j++)
for(i=0;i<2;i++)
printf("%5d",b[j][i]);
getchar();
}
我在这加了FOR()下面加了一个:printf("%5d",a[i][j]);
我输入:1 2 3 4 5 6
结果为:5 1 4 2 5 3 6
多了一个“5”这是怎么回事!
给我看看!
----------------解决方案--------------------------------------------------------
犯了好多低级错误
一个for语句应该加个大括号
----------------解决方案--------------------------------------------------------
回复3#你的数组一个是两行三列,另一个是三行两列,当然不对.
想一想就明白了.
----------------解决方案--------------------------------------------------------
回复 2# 的帖子
呵呵谢谢! ----------------解决方案--------------------------------------------------------