| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 696 人关注过本帖
标题:行列互换3*3(改错)
只看楼主 加入收藏
BINGQING
Rank: 2
来 自:武汉
等 级:论坛游民
帖 子:98
专家分:75
注 册:2010-3-29
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
行列互换3*3(改错)
行列互换3*3(改错)
#include "stdio.h"
void main()
{
    int i,j,temp;
    int a[3][3]={0};
    for(i=0;i<3;i++)
    for(j=0;j<3;j++)
    {
        printf("input a number:");
        scanf("%d",&a[i][j]);
    }
    for(i=1;i<=3;i++)
    for(j=1;j<=3;j++)
    {
        temp=a[i][j];
        a[i][j]=a[j][i];
        a[j][i]=temp;
    }
    printf("after swtch ,the array is:\n");
   
    for(i=0;i<3;i++)
    for(j=0;j<3;j++)
   
    printf("%d\t",a[j][i]);
   
   
   
   
}
搜索更多相关主题的帖子: 行列 改错 
2010-05-27 12:42
zhuxu0423
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:59
专家分:101
注 册:2010-4-12
收藏
得分:15 
有两处错误,1处语法错误,1处逻辑错误
sort(a[3][3]);修改成sort(a);就可以
但是你运行一下,你可以发现他没有转置

因为 for(i=0;i<3;i++)
 for(j=0;j<3;j++)把所有的元素都循环了,例如a[1][2]对换了,然后a[2][1]也对换了,实际上没有作用了就,你可以改成for(i=0;i<3;i++)
 for(j=i;j<3;j++)
这样就不会重复对换,就可以实现转置的目的了
2010-05-27 12:48
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
收藏
得分:5 
#include "stdio.h"
void main()
{
    int i,j,temp;
    int a[3][3]={0};
    for(i=0;i<3;i++)
    for(j=0;j<3;j++)
    {
        printf("input a number:");
        scanf("%d",&a[i][j]);
    }
    for(i=1;i<=3;i++)
    for(j=1;j<=3;j++)
    {
        temp=a[i][j];
        a[i][j]=a[j][i];
     a[j][i]=temp;
    }
    printf("after swtch ,the array is:\n");
   
    for(i=0;i<3;i++)
   {printf("\n");
    for(j=0;j<3;j++)
    printf("%d\t",a[j][i]);
    }
    getch();
}

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-05-27 13:05
BINGQING
Rank: 2
来 自:武汉
等 级:论坛游民
帖 子:98
专家分:75
注 册:2010-3-29
收藏
得分:0 
恩,谢谢了
2010-05-27 13:06
灰色代言
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-27 15:24
bccn250
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:379
注 册:2010-5-25
收藏
得分:0 
看你的程序运行组果,我想应该不叫3*3互换,应该叫3*3数组旋转,

还有就是这段代码可能是错的吧
    for(i=1;i<=3;i++)
    for(j=1;j<=3;j++)
    {
        temp=a[i][j];
        a[i][j]=a[j][i];
        a[j][i]=temp;
    }

上面 int a[3][3]={0};定义的是3*3的数组,但最高下标应该是2吧,你用<=3就是说允许等于3,那么在a[3][3]的时候不就超出数组的界限了吗?
2010-05-27 19:17
qiuyuan
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2009-11-12
收藏
得分:0 

#include "stdio.h"
int main()
{
    int i,j,temp;
    int a[3][3]= {0};
    printf("input a number:");
    for(i=0; i<3; i++)
        for(j=0; j<3; j++)
        {
            scanf("%d",&a[i][j]);
        }
    for(i=0; i<3; i++)
        for(j=0; j<3; j++)
        {
            temp=a[i][j];
            a[i][j]=a[j][i];
            a[j][i]=temp;
        }
    printf("after swtch ,the array is:\n");
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
            printf("%d\t",a[j][i]);
        printf("\n");
    }
    return 0;
}

编出自己的风采!
2010-11-12 11:59
快速回复:行列互换3*3(改错)
数据加载中...
 
   



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

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