|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
以下程序是在DEV-C++运行编译的,,请问把main主函数里的swap(&array[0][1],min(array)); 改为swap(&array[0][0],min(array));运行结果不是我想要的...
有大神分析下是怎么回事么...
#include <stdio.h>
#include <stdlib.h>
void swap(int *p1,int *p2);
int main(int argc, char *argv[])
{
int *max(int (*p)[5]);
int *min(int (*p)[5]);
int *min_1(int (*p)[5]);
void print(int (*p)[5]);
int array[5][5]={{90,50,60,70,80},{81,21,31,41,11},{22,32,12,62,92},{98,18,78,28,88},{33,23,93,53,73}};
int i,j;
printf("重排前:\n");
print(array);
swap(&array[0][1],min(array));
printf("重排后:\n");
print(array);
swap(&array[2][2],max(array));
swap(&array[0][0],min(array));
printf("重排后:\n");
print(array);
system("pause");
return 0;
}
void print(int (*p)[5])
{
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%1d ",*(*(p+i)+j));
}
printf("\n");
}
}
int *max(int (*p)[5])
{
int *pma;
int i,j,ma;
ma=**p;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(*(*(p+i)+j)>ma)
{
ma=*(*(p+i)+j);
pma=*(p+i)+j;
}
}
}
return pma;
}
int *min(int (*p)[5])
{
int *pmi;
int i,j,mi;
mi=**p;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(*(*(p+i)+j)<mi)
{
mi=*(*(p+i)+j);
pmi=*(p+i)+j;
}
}
}
return pmi;
}
void swap(int *p1,int *p2)//
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
|
|