| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 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: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册: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.017153 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved