永发信息网

一道C语言的题目

答案:1  悬赏:30  手机版
解决时间 2021-05-23 04:27

有一个5*5的整型矩阵,要求写一个函数把最小的四个数放在左上角,右上角,左下角,右下角.在矩阵中间放入最大的数

使用指针

最佳答案

看着么久没人回复你,做个简单思路的函数给你吧。


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

int fun(int *matrix)
{
 if(!matrix) return 0;
 int * pos_start,*pos_end;
 int * pos_src[] = {matrix,matrix+1,matrix+2,matrix+3,matrix};
 int * pos_des[] = {matrix,matrix+4,matrix+20,matrix+24,matrix+12};
 int tmp[]={*matrix,*(matrix+1),*(matrix+2),*(matrix+3),*matrix};
 pos_start = matrix,pos_end = matrix + 24;
 int n;
 while ( pos_start < pos_end )
 {
    if( *pos_start < * (pos_start+1) )
    {
   for( n = 0;n<4;n++)
   {
    if( tmp[n] > *pos_start )
    {
    tmp[n] = *pos_start,pos_src[n] = pos_start;
    break;
    }
   }
   if( tmp[4] <= *(pos_start+1) )
   {
    tmp[4]=*(pos_start+1),pos_src[4] = pos_start+1;
   }
  }
    pos_start++;
 }
 for( n=0;n<5;n++)
 {
  *(pos_src[n]) = *(pos_des[n]);
  *(pos_des[n]) = tmp[n];
 }
 return 1;
}


//以下为测试代码。
int arry[][5] ={
 {1,23,321,23,0},
 {123,312321,123123,12312,123123},
 {2,123123,123213,123123,543},
 {75467,7,45,2,34},
 {12321,12321,2,3,123214}
};
int main()
{


 fun( (int*)arry );
 printf("------------------------------------------------------------\n");
 for(int i=0;i<5;i++)
 {
  for(int n =0;n<5;n++)
   printf("|%10d|",arry[i][n]);
  printf("\n------------------------------------------------------------\n");
 }
 Sleep(10000);
}

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
物业不移交物业管理用房适用的法律
想读书怎么办
称赞的意思意思是什么,battery charger是什么
三个角是直角的平行四边形是矩形吗?
现在什么电视好看?
狗肉火锅地址有知道的么?有点事想过去
简单的会计分录题,求做一点简单的会计分录= =
有什么新出的网络游戏呢?简单介绍一些。不要
霸气的正能量语录经典,怎么活下去富有正能量
母亲节到了,小明给妈妈买了一件小礼物,他准备
诸葛亮骂死王司徒台词,三国演义中的诸葛亮和
广东省畜牧兽医学会小动物医学专业委员会地址
航班到达查询:请问今晚西雅图到北京航班的时
求天龙八部财富卡序列号(没用过的)10.20
一个圆柱和圆锥体积的比是4:1,底面半径的比
推荐资讯
通讯录里面存了的联系人,怎么人家发短信给我
大话2的五环每天都做是挣钱还是赔钱?
如何用电饭煲蒸蛋糕,有蛋糕功能的电饭锅要怎
小学生用什么书包好,小学生书包哪个品牌好
什么叫邮件抄送,邮件中的抄送和密送和发件人
艺术包括哪些门类,艺术设计包括哪些方面?
怀孕了嘴巴苦怎么回事,左腮帮子嘴边里面肿了
奋斗的青春最美丽散文,奋斗的青春最美丽作文2
岳麓区长沙德润园拳馆怎么去啊,谁知道地址啊
吃健脾丸对身有好处没
一台主机接两个显示器和两个键盘、鼠标,相互
爱淘宝怎么绑定银行卡,挖财绑定银行卡安全吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?