| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 913 人关注过本帖
标题:小女子求助!
只看楼主 加入收藏
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
刚才试了一下,解压虽然不正确,但还是可以解压出来的.

倚天照海花无数,流水高山心自知。
2007-05-24 22:27
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

干脆我把程序贴出来了.
#include<stdio.h>
#define N 5

void zhuanhuan(int *a)
{
int *min,*max;
int i,j,t;
max=a;
min=a;

for(i=0;i<N;i++)
{
for(j=i;j<N;j++)
{
if(*min>*(a+N*i+j))
{
min=(a+N*i+j);
}
if(*max<*(a+N*i+j))
{
max=(a+N*i+j);
}
}
}
t=*(a+N/2*N+N/2);
*(a+N/2*N+N/2)=*max;
*max=t;
t=*a;
*a=*min;
*min=t;


min=a+1;//第二个
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
if((a+N*i+j)!=a&&*min>*(a+N*i+j))
{
min=(a+N*i+j);
}
}
}
t=*(a+N-1);
*(a+N-1)=*min;
*min=t;

min=a+1;//第三个
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
if((a+N*i+j)!=a&&(a+N*i+j)!=a+N-1&&*min>*(a+N*i+j))
{
min=(a+N*i+j);
}
}
}
t=*(a+N*(N-1));
*(a+N*(N-1))=*min;
*min=t;

min=a+1;//第四个
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
if((a+N*i+j)!=a&&(a+N*i+j)!=a+N-1&&(a+N*i+j)!=a+N*(N-1)&&*min>*(a+N*i+j))
{
min=(a+N*i+j);
}
}
}
t=*(a+N*N-1);
*(a+N*N-1)=*min;
*min=t;
}

int main()
{
int data[N][N];
int i,j,*p;
p=&data[0][0];
printf("输入%d行%d列的数组\n",N,N);
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
scanf("%d",&data[i][j]);
}
}
zhuanhuan(p);
printf("转换后的数组是\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%-3d",data[i][j]);
}
printf("\n");
}
return(0);
}


倚天照海花无数,流水高山心自知。
2007-05-24 22:27
小子也大叔
Rank: 2
等 级:新手上路
威 望:4
帖 子:143
专家分:0
注 册:2007-4-23
收藏
得分:0 
  其实要的不是你写出来的程序,而是想要知道你的思路.这个才是最重要的,有时候看了你的程序  也不一定能懂   so ~~~~~~~~

希望一心想学c的加我的群吧~~ 40834003
2007-05-24 23:41
huangqing
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-4-6
收藏
得分:0 

那确实!
高手思路!


吃得苦中苦;方为人上人!
2007-05-25 09:25
darklily
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-5-16
收藏
得分:0 
#include "stdio.h"
void mov();
main()
{
int a[5][5],*p,i,j;
p=&a[0][0];
printf("Input the matrix:\n");
for(i=0;i<5;i++)/*输入矩阵*/
{
scanf("%d%d%d%d%d",&a[i][0],&a[i][1],&a[i][2],&a[i][3],&a[i][4]);
}
mov(p);/*函数调用*/
printf("The moved matrix is :\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%3d",a[i][j]);
}
printf("\n");/*打印交换完毕的数*/
}
}
void mov(int *p)
{
int *p1,*p2,max=*p,temp,min=*p;
p1=p;
for(;p1<=p+24;p1++)
{
if(*p1>=max)/*注意循环条件*/
{
max=*p1;
p2=p1;
}
}
temp=*(p+12);
*(p+12)=max;
*p2=temp;/*求最大值,并交换位置*/
for(p1=p;p1<=p+24;p1++)
{
if(*p1<=min)/*注意循环条件*/
{
min=*p1;
p2=p1;
}
}
temp=*p;
*p=min;
*p2=temp;/*最小值交换*/
for(p1=p+1,min=*(p+1);p1<=p+24;p1++)
{
if(*p1<=min)
{
min=*p1;
p2=p1;
}
}
temp=*(p+4);
*(p+4)=min;
*p2=temp;/*第二小的数*/
for(p1=p+1,min=*(p+1);p1<=p+24;p1++)
{
if(p1==(p+4))/*注意循环条件*/
p1+=1;
if(*p1<=min)
{
min=*p1;
p2=p1;
}
}
temp=*(p+24);
*(p+24)=min;
*p2=temp;/*第三小的数*/
for(p1=p+1,min=*(p+1);p1<=p+23;p1++)
{
if(p1==(p+4) )/*注意循环条件*/
p1+=1;
if(*p1<=min)
{
min=*p1;
p2=p1;
}
}
temp=*(p+20);
*(p+20)=min;
*p2=temp;/*第四小的数*/

2007-05-25 10:31
darklily
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-5-16
收藏
得分:0 
先找最大数,交换
在找最小数,交换
再找第二小,交换
第三小,交换
算法很简单..注意别把地址搞错了就好

2007-05-25 10:33
快速回复:小女子求助!
数据加载中...
 
   



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

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