将一个5*5的矩阵中最大的元素放在中心,四角分别放置4个最小元素,编写一函数实现之。用main()函数调用。

[复制链接]
查看11 | 回复1 | 2009-12-31 15:27:51 | 显示全部楼层 |阅读模式
C代码:#includevoid main(){ void change(int x[][5]); int a[5][5]={{100,99,98,97,96},{95,94,93,92,91},{90,89,88,87,86},{85,84,83,82,81},{80,79,78,77,76}}; int i,j; printf("转换前:\n"); for(i=0;i<5;i++) {for(j=0;j<5;j++) printf("%4d",a[j]);printf("\n"); } change(a);/*调用函数*/ printf("转换后:\n"); for(i=0;i<5;i++) {for(j=0;j<5;j++) printf("%4d",a[j]);printf("\n"); }}void change(int x[][5]){ int b[25],i,j,k=0,t; for(i=0;i<5;i++)/*把二维数组中元素按行的顺序存放到一维数组*/for(j=0;j<5;j++){ b[k]=x[j]; k++;}for(i=0;i<24;i++)/*选择排序法,对一维数组中元素进行从小到大的排序*/{ k=i; for(j=i+1;j<25;j++)
if(b[j]#includeusing namespace std;int main(){ void change(int x[][5]); int a[5][5]={{100,99,98,97,96},{95,94,93,92,91},{90,89,88,87,86},{85,84,83,82,81},{80,79,78,77,76}}; int i,j; cout<<"转换前:"<<endl; for(i=0;i<5;i++) {for(j=0;j<5;j++) cout<<setw(4)<<a[j];cout<<endl; } change(a);/*调用函数*/ cout<<"转换后:"<<endl; for(i=0;i<5;i++) {for(j=0;j<5;j++) cout<<setw(4)<<a[j];cout<<endl; } return 0;}void change(int x[][5]){ int b[25],i,j,k=0,t; for(i=0;i<5;i++)/*把二维数组中元素按行的顺序存放到一维数组*/for(j=0;j<5;j++){ b[k]=x[j]; k++;}for(i=0;i<24;i++)/*选择排序法,对一维数组中元素进行从小到大的排序*/{ k=i; for(j=i+1;j<25;j++)
if(b[j]<b[k])
k=j;
if(k!=i)
{
t=b[k];
b[k]=b;
b=t;
}} for(i=0;i<5;i++)for(j=0;j<5;j++) if(x[j]==b[24]) {
t=x[j];
x[j]=x[2][2];
x[2][2]=t;
break; } for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(x[j]==b[0])
{
t=x[j];
x[j]=x[0][0];
x[0][0]=t;
break;
} for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(x[j]==b[1])
{
t=x[j];
x[j]=x[0][4];
x[0][4]=t;
break;
} for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(x[j]==b[2])
{
t=x[j];
x[j]=x[4][0];
x[4][0]=t;
break;
} for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(x[j]==b[3])
{
t=x[j];
x[j]=x[4][4];
x[4][4]=t;
break;
}}
回复

使用道具 举报

千问 | 2009-12-31 15:27:51 | 显示全部楼层
将一个5*5的矩阵中最大的元素放在中心,四角分别放置4个最小元素,编写一函数实现之。用main()函数调用。 悬赏分:10 - 离问题结束还有 14 天 23 小时 最好要详细代码~尤其是关键步骤~4个最小元素(按从左到右、从上倒下的顺序依次从小
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行