| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 742 人关注过本帖
标题:大家帮帮忙
只看楼主 加入收藏
Sunshine喵喵
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2009-4-26
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:13 
大家帮帮忙
#include<stdio.h>
main()
{int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2]={0},i,j;
printf("array a:\n");
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
printf("\n");}
printf("array b:\n");
for(i=0;i<3;i++)
{for(j=0;j<2;j++)
printf("%5d",b[i][j]);
printf("\n");
}
}
这个程序是按照C程序设计上的一个例子抄的,题目是将一个二维数组行列元素互换,存到另一个二维数组中。如 a=1 2 3   b=1 4.但是运行得不到结果,
是书上错了嘛?正确解法该怎样?
                                                                                                      4 5 6,    2 5
                                                                                                                3 5   
搜索更多相关主题的帖子: C程序设计 include 元素 
2009-09-12 15:53
cgaa1
Rank: 2
来 自:uestc
等 级:论坛游民
帖 子:52
专家分:64
注 册:2009-4-11
收藏
得分:0 
for在嵌套中括号间好像有问题
2009-09-12 16:11
cgaa1
Rank: 2
来 自:uestc
等 级:论坛游民
帖 子:52
专家分:64
注 册:2009-4-11
收藏
得分:0 
帮你把括号调整了一下
#include<stdio.h>
main()
{
    int a[2][3]={{1,2,3},{4,5,6}};
    int b[3][2]={0},i,j;
    printf("array a:\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");
       }
}
2009-09-12 16:15
ljt0000mf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:104
专家分:157
注 册:2009-7-4
收藏
得分:0 
错误什么提示?
2009-09-12 16:17
Sunshine喵喵
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2009-4-26
收藏
得分:0 
回复 4楼 ljt0000mf
没有错误,但是运行没有结果
2009-09-12 16:19
Sunshine喵喵
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2009-4-26
收藏
得分:0 
回复 3楼 cgaa1
这个也是啊,没有结果的
2009-09-12 16:20
xdyuan33
Rank: 3Rank: 3
来 自:广西大学化工学院
等 级:论坛游侠
帖 子:146
专家分:145
注 册:2009-7-24
收藏
得分:5 
#include<stdio.h>
main()
{int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2]={0},i,j;
printf("array a:\n");
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
printf("%5d",a[i][j]); /*这句在这里不能放在这里的,因为在这里的时候就打断后面b[j][i]=a[i][j] */
b[j][i]=a[i][j];        /*不再是两个FOR一起作用*/
printf("\n");}
printf("array b:\n");
for(i=0;i<3;i++)
{for(j=0;j<2;j++)
printf("%5d",b[i][j]);
printf("\n");
}
}

参与切磋是美德,每天回帖即可获得10分可用分!
2009-09-12 17:27
xdyuan33
Rank: 3Rank: 3
来 自:广西大学化工学院
等 级:论坛游侠
帖 子:146
专家分:145
注 册:2009-7-24
收藏
得分:0 
或者可以再用个{}
#include<stdio.h>
main()
{
  int a[2][3]={{1,2,3},{4,5,6}};
  int b[3][2]={0},i,j;
  printf("array a:\n");
  for(i=0;i<2;i++)
   { for(j=0;j<3;j++)
      {printf("%5d",a[i][j]);
       b[j][i]=a[i][j];
       }
       printf("\n");
    }
 
  printf("array b:\n");
  for(i=0;i<3;i++)
   {for(j=0;j<2;j++)
     printf("%5d",b[i][j]);
     printf("\n");
   }
}

参与切磋是美德,每天回帖即可获得10分可用分!
2009-09-12 17:35
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:5 
原因出在你程序的第二个for循环上,第二个for循环每次循环只执行到输出语句,数组a赋值数组b的语句没循环到。退出第二循环到外层循环for上,才对数组b赋值,这时j是等于3的数,b[j][i]是超出的下标赋值,所以不对。
for(j=0;j<3;j++)
printf("%5d",a[i][j]);
b[j][i]=a[i][j];          用'}'花括号把这两句括起来就可以了。
·
另外说一下,楼主你的头像的图片很好看,有美也有个性,我喜欢。

[ 本帖最后由 UserYuH 于 2009-9-12 17:44 编辑 ]

努力—前进—变老—退休—入土
2009-09-12 17:41
xuleiyee001
Rank: 2
等 级:论坛游民
帖 子:44
专家分:17
注 册:2009-4-21
收藏
得分:0 
你的那个输出a数组的位置不要放在那就可以了,去掉那个语句。
2009-09-12 17:53
快速回复:大家帮帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019894 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved