首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个C的题目,帮忙修改一下小弟我的代码,不知道如何错了

2012-02-21 
一个C的题目,帮忙修改一下我的代码,不知道怎么错了?菜鸟遇到一个问题如下,望高手指教。问题:输入一个5x5的

一个C的题目,帮忙修改一下我的代码,不知道怎么错了?
菜鸟遇到一个问题如下,望高手指教。

问题:输入一个5x5的矩阵,将其中最大的元素放在中心,四个角分别放4个最小的元素(顺序为从左到右,从上倒下顺序依次从小到大存放)。写一个函数实现。

我的源码如下,不知道错在哪,望指教。

main()  
{void   sort(int   a[][]);  
int   b[5][5],i;  
printf( "请输入5X5的矩阵\n ");  
for(i=0;i <5;i++)  
scanf( "%d   %d   %d   %d   %d ",&b[i][0],&b[i][1],&b[i][2],&b[i][3],&b[i][4]);  
sort(b[5][5]);  
for(i=0;i <5;i++)  
printf( "%d   %d   %d   %d   %d\n ",b[i][0],b[i][1],b[i][2],b[i][3],b[i][4]);  
}  
void   sort(int   a[5][5])  
{   int   *pmin,*pmax,temp,i,j;  
pmax=&a[0][0];  
pmin=&a[0][0];  
for(i=0;i <5;i++)  
for(j=0;j <5;j++)  
{if(a[i][j]> *pmax)pmax=&a[i][j];  
if(a[i][j] <*pmin)pmin=&a[i][j];}/*查找最大最小值*/  
temp=a[2][2];   /*交换最大最小值*/  
a[2][2]=*pmax;  
*pmax=temp;  
temp=a[0][0];  
a[0][0]=*pmin;  
*pmin=temp;  
pmin=&a[0][4];  
for(i=0;i <5;i++)  
for(j=0;j <5;j++)  
if((a[i][j] <*pmin)&&(a[i][j]> a[0][0]))pmin=&a[i][j];  
temp=a[0][4];   /*交换第二小值*/  
a[0][4]=*pmin;  
*pmin=temp;  
pmin=&a[4][0];  
for(i=0;i <5;i++)  
for(j=0;j <5;j++)  
if((a[i][j] <*pmin)&&(a[i][j]> a[0][4]))pmin=&a[i][j];  
temp=a[4][0];   /*交换第三小值*/  
a[4][0]=*pmin;  
*pmin=temp;  
pmin=&a[4][4];  
for(i=0;i <5;i++)  
for(j=0;j <5;j++)  
if((a[i][j] <*pmin)&&(a[i][j]> a[4][0]))pmin=&a[i][j];  
temp=a[4][4];   /*交换第四小值*/  
a[4][4]=*pmin;  
*pmin=temp;  
}


[解决办法]
看的我眼疼
给出一个我的代码吧,供参考
main()
{
int i;
int b[5][5];
printf( "请输入5X5的矩阵\n ");
for(i=0;i <5;i++)
for(int j=0;j <5;j++)
b[i][j]=::rand()%100;

for(i=0;i <5;i++)
printf( "%d\t%d\t%d\t%d\t%d\n ",b[i][0],b[i][1],b[i][2],b[i][3],b[i][4]);

ArraySort((int *)b);

printf( "排序后矩阵为:\n ");
for(i=0;i <5;i++)
printf( "%d\t%d\t%d\t%d\t%d\n ",b[i][0],b[i][1],b[i][2],b[i][3],b[i][4]);
}

void ArraySort(int * a)
{
int temp,i;
temp=0;
//换最大值
for(i=0;i <25;i++)
{
if(a[12] <a[i])
{
temp=a[12];
a[12]=a[i];
a[i]=temp;
}
//换a[0][0]
if(a[0]> a[i])
{
temp=a[0];
a[0]=a[i];
a[i]=temp;
}
//换a[0][4]
if(i==0)continue;
if(a[4]> a[i])
{
temp=a[4];
a[4]=a[i];
a[i]=temp;
}
//换a[4][0]
if(i==0||i==4)continue;
if(a[20]> a[i])
{
temp=a[20];
a[20]=a[i];
a[i]=temp;
}

//换a[4][4]
if(i==0||i==4||i==20)continue;
if(a[24]> a[i])
{
temp=a[24];
a[24]=a[i];
a[i]=temp;
}
}
}
[解决办法]
void sort(int a[][])
改为
void sort(int a[][5])
还有头文件少了#include <stdio.h>
sort(b);


编译通过

热点排行