| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
大量收QQ微信精准粉/交友粉,非诚勿扰千里之行 始于足下
共有 901 人关注过本帖
标题:关于编写一个函数将二维数组中的数互换的问题
只看楼主 加入收藏
firewater
Rank: 1
等 级:新手上路
帖 子:47
专家分:4
注 册:2014-7-13
结帖率:87.5%
  已结贴   问题点数:5  回复次数:5   
关于编写一个函数将二维数组中的数互换的问题
我写了一个函数就是把二维数组中的数互换,比如:a[ i ] [ j ] = a [ j ] [ i ];     但是一直没用比如
以下是代码:
程序代码:
#include <stdio.h>
int main(void)
{
        int num[3][3];
        int i = 0, j = 0;
        void zhuanzhi(int a[][3]);
        printf("Please input nine numbers:\n");
        for (i = 0; i <= 2; i++)
        {
                for (j = 0; j <= 2; j++)
                {
                        printf("num[%d][%d] = ", i, j);
                        scanf("%d", &num[i][j]);
                }
        }
        for (i = 0; i <= 2; i++)
        {
                for (j = 0; j <= 2; j++)
                {
                        printf("%5d", num[i][j]);
                }
                printf("\n");
        }
        printf("\n");
        zhuanzhi(num);
        return 0;
}

void zhuanzhi(int a[][3])   /*定义转置数组函数*/
{
        int i, j, temp;
        for (i = 0; i <= 2; i++)
        {
                for (j = 0; j <= 2; j++)
                {
                        temp = a[i][j];
                        a[i][j] = a[j][i];
                        a[j][i] = temp;
                }
        }
        for (i = 0; i <= 2; i++)
        {
                for (j = 0; j <= 2; j++)
                {
                        printf("%5d", a[k][h]);
                }
                printf("\n");
        }
}

附件: 您没有浏览附件的权限,请 登录注册
2015-02-01 22:36
firewater
Rank: 1
等 级:新手上路
帖 子:47
专家分:4
注 册:2014-7-13
  得分:0 
我下了断点单步调试也没找出什么问题,大家有没有什么调试的好的方法
2015-02-01 22:43
lovegh
Rank: 5Rank: 5
来 自:图灵学院
等 级:职业侠客
威 望:3
帖 子:117
专家分:311
注 册:2015-1-23
  得分:2 
大哥,你的错误是换了两次,第一次换好了,在换一次,当然不变,听懂了么?没懂你弄个2*2的自己手算就知道。只要算一半就行。

别老是写代码,要多陪妹子,多了解老婆大人,血淋淋的教训。
2015-02-02 00:13
wmf2014
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:153
帖 子:1706
专家分:9520
注 册:2014-12-6
  得分:3 
在i=0时,行和列进行了交换,如a[0][1]和a[1][0]进行了第一次交换,当i=1时,a[1][0]和a[0][1]又进行了一次交换,不就换回了?
所以交换的代码应该如下(红色字符部分为修改部分):
        for (i = 0; i <= 2; i++)
        {
                for (j = i; j <= 2; j++)
                {
                        temp = a[i][j];
                        a[i][j] = a[j][i];
                        a[j][i] = temp;
                }
        }

能编个毛线衣吗?
2015-02-02 00:14
firewater
Rank: 1
等 级:新手上路
帖 子:47
专家分:4
注 册:2014-7-13
  得分:0 
回复 3楼 lovegh
懂了,
2015-02-02 14:41
firewater
Rank: 1
等 级:新手上路
帖 子:47
专家分:4
注 册:2014-7-13
  得分:0 
回复 4楼 wmf2014
恩,知道了
2015-02-02 14:41







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

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