| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 259 人关注过本帖
标题:一个简单的题目,望大家来改正!
只看楼主 加入收藏
梦_启航
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2009-6-3
结帖率:0
收藏
 问题点数:0 回复次数:0 
一个简单的题目,望大家来改正!
习题描述:
将一个5*5的矩阵中最大的元素放在中心,四个角分别放四个最小的元素(顺序从左到右,从上到下顺序依次从小到大存放),写一个函数实现之。用main函数调用。
例如原来矩阵:
35 34 33 32 31
30 29 28 27 26
25 24 23 22 21
20 19 18 17 16
15 14 13 12 11

改变后的矩阵
11 34 33 32 12
30 29 28 27 26
25 24 35 22 21
20 19 18 17 16
13 23 15 31 14



我自己写的答案:


#include<stdio.h>
void exchange(int (*a)[5])
{
    int i,i1,i2,j,j1,j2,max=0,min1=a[0][0];
    int min2,min3,min4;
    for(i=0;i<5;i++)
        for(j=0;j<5;j++)
        {
            if(a[i][j]>max)
            {
                max=a[i][j];
                i1=i;j1=j;   
            }
            if(a[i][j]<min1)
            {
                min1=a[i][j];
                i2=i;j2=j;
            }
        }
            a[i1][j1]=a[2][2];
            a[2][2]=max;
            a[i2][j2]=a[0][0];
            a[0][0]=min1;
            min2=max;
            min3=max;
            min4=max;
    for(i=0;i<5;i++)
        for(j=0;j<5;j++)
            if(a[i][j]<min2&&a[i][j]>a[0][0])
            {
                min2=a[i][j];
                i1=i;j1=j;
            }
            a[i1][j1]=a[0][4];
            a[0][4]=min2;
    for(i=0;i<5;i++)
        for(j=0;j<5;j++)
            if(a[i][j]<min3&&a[i][j]>a[0][4])
            {
                min3=a[i][j];
                i1=i;j1=j;
            }
            a[i1][j1]=a[4][0];
            a[4][0]=min3;
    for(i=0;i<5;i++)
        for(j=0;j<5;j++)
            if(a[i][j]<min4&&a[i][j]>a[4][0])
            {
                min4=a[i][j];
                i1=i;j1=j;
            }
            a[i1][j1]=a[4][4];
            a[4][4]=min4;
}
main()
{   int i,j;
    int a[5][5]={35,34,33,32,31,
                30,29,28,27,26,
               25,24,23,22,21,
               20,19,18,17,16,
               15,14,13,12,11};
        exchange(a);
        for(i=0;i<5;i++)
        {
            for(j=0;j<5;j++)
                printf("%5d",a[i][j]);
            printf("\n");
        }
  

}

希望高手们能贴出优秀的代码,让大家学习啊!
2009-07-21 20:59
快速回复:一个简单的题目,望大家来改正!
数据加载中...
 
   



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

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