| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 483 人关注过本帖
标题:请高手指教?
只看楼主 加入收藏
lyfslh
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-7-24
收藏
 问题点数:0 回复次数:3 
请高手指教?
有这样一道题:
将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下顺序依次从小到大存放),写一个函数实现之。用main函数调用。
注:只将最小的或最大的数交换到4个距阵的角上和距阵的中心,距阵的其它元素保留不变。

我想了好久也没有一个好的算法,希望你们给我指点指点思路,在此表示非常的感谢!
搜索更多相关主题的帖子: 指教 
2005-09-05 12:34
84009030
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2005-5-19
收藏
得分:0 

#include<stdlib.h> #include<stdio.h> #define N 5 main() { int a[N][N],*p; void change(int *p); printf("source array:\n"); randomize(); for(p=*a;p<*a+N*N;p++) { if((p-*a)%N==0)printf("\n"); printf("%4d",*p=rand()%100); } p=&a[0][0]; change(p); printf("\nnow array: \n"); for(p=*a;p<*a+N*N;p++) { if((p-*a)%N==0)printf("\n"); printf("%4d",*p); } getch(); }

void change(int *p) { int i,j,temp; int *pmax,*pmin; pmax=p; pmin=p; for(i=0;i<N;i++) for(j=0;j<N;j++) { if(*pmax<*(p+N*i+j)) pmax=p+N*i+j; if(*pmin>*(p+N*i+j)) pmin=p+N*i+j; } temp=*(p+12);*(p+12)=*pmax;*pmax=temp; temp=*p;*p=*pmin;*pmin=temp; pmin=p+1; for(i=0;i<N;i++) for(j=0;j<N;j++) if(((p+N*i+j)!=p)&&(*pmin>*(p+N*i+j))) pmin=p+N*i+j; temp=*pmin;*pmin=*(p+4);*(p+4)=temp; pmin=p+1; for(i=0;i<N;i++) for(j=0;j<N;j++) if(((p+N*i+j)!=(p+4))&&((p+N*i+j)!=p)&&(*pmin>*(p+N*i+j))) pmin=p+N*i+j; temp=*pmin;*pmin=*(p+20);*(p+20)=temp; pmin=p+1; for(i=0;i<N;i++) for(j=0;j<N;j++) if(((p+N*i+j)!=p)&&((p+N*i+j)!=(p+4))&&((p+N*i+j)!=(p+20))&&(*pmin>*(p+N*i+j))) pmin=p+N*i+j; temp=*pmin;*pmin=*(p+24);*(p+24)=temp; }


/* HELLO.C -- Hello, jat chan */ #include \"stdio.h\" #include \"conio.h\" main() { printf(\"Hello, jat chan\\n\"); getch(); }
2005-09-05 13:37
84009030
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2005-5-19
收藏
得分:0 
还有这个[URL=http://202.192.163.48/ranqing/shiyandaan/syno9-10.htm]http://202.192.163.48/ranqing/shiyandaan/syno9-10.htm[/URL]

/* HELLO.C -- Hello, jat chan */ #include \"stdio.h\" #include \"conio.h\" main() { printf(\"Hello, jat chan\\n\"); getch(); }
2005-09-05 13:41
lyfslh
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-7-24
收藏
得分:0 
谢谢!非常感谢!万分感谢!
2005-09-05 15:32
快速回复:请高手指教?
数据加载中...
 
   



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

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