标题:谁能把这个给解决了,很奇怪!
只看楼主
max668
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-7-25
结帖率:100%
 问题点数:0 回复次数:3 
谁能把这个给解决了,很奇怪!
编写一个函数,是给定的一个二维数组(3*3)转置,即行列互换!

#include "stdafx.h"
#include<stdio.h>

#define N 3

int array[3][3];

void convert(int array[][3])
{
    int i,j,t;
    for(i=0;i<N;i++)
    {
        for(j=i+1;j<N;j++)//请大家注意这里,这里为什么用j=i+1???我把它改成j=i,编译后得到的结果一样,不是应该是j=0,才对的吗
        {
            t=array[i][j];
            array[i][j]=array[j][i];
            array[j][i]=t;
        }
    }
}

int main(int argc, char* argv[])
{
    int i,j;

    printf("\ninput array:\n");

    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
            scanf("%d",&array[i][j]);
    }

    printf("\noriginal array:\n");

    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
            printf("%5d",array[i][j]);
        printf("\n");
    }

    convert(array);

    printf("convert array:\n");

    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
            printf("%5d",array[i][j]);
        printf("\n");
    }

    return 0;
}
请大家给说一下!谢谢哦!
搜索更多相关主题的帖子: convert include 
2010-08-16 01:00
max668
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-7-25
得分:0 
怎么那么多人看,没一个回复的
2010-08-16 07:33
虾B写
Rank: 8Rank: 8
来 自:湖北
等 级:蝙蝠侠
威 望:3
帖 子:395
专家分:922
注 册:2009-10-1
得分:0 
当然一样
多运行了一次I==J,当I==J也就是arr[0][0]=arr[0][0],数都没变。

白娘故意下雨骗许仙的伞。祝英台十八里相送时装疯卖傻调戏梁山伯。七仙女挡住了董永的去路。牛郎趁织女洗澡时拿走了她的衣服。。。这些故事告诉我们;伟大爱情的开始,总归的有一个要先耍流氓!
2010-08-16 07:54
韩明海
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:253
专家分:749
注 册:2010-4-3
得分:0 
j=i当然可以,只不过是多做一次没用的运算,自己和自己换
如果j= 0 ;当然不行,例如,i=0,j=2 时,(0,2)和(2,0)换了
现在你写j=0; 那么当i=2,j=0时,你又把(0,2)和(2,0)换回来了,其实这不是什么问题, 自己用程序逻辑一步步算一下就很容易知道了,没人理你是因为你没有问题点数
2010-08-16 13:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-315815-1-1.html




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

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