您的位置:首页 > 编程语言 > C语言/C++

Problem D: C语言习题 矩阵元素变换

2016-03-13 13:12 477 查看



Time Limit: 1 Sec Memory Limit:
128 MB

Submit: 400 Solved: 206

[Submit][Status][Web
Board]

Description

将一个n×n(2<n<10,n为奇数)的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(按从左到右、从上到下顺序依次从小到大存放),写一

函数实现。用main函数调用。

Input

输入n和矩阵中的每个元素

Output

变换后的矩阵

Sample Input

5
25 13 9 5 1
16 17 18 19 6
15 24 4 20 7
14 23 22 21 8
2 12 11 10 3

Sample Output

1 13 9 5 2
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
3 12 11 10 4

HINT

主函数已给定如下,提交时不需要包含下述主函数

/* C代码 */

int main()

{

void change(int *,int );

int **a,*p,i,j;

int n;

scanf("%d",&n);

p=(int*)malloc(n*n*sizeof(int));

a=(int**)malloc(n*sizeof(int *));

for(i=0; i<n; i++)

a[i]=p+n*i;

for (i=0; i<n; i++) //输入矩阵

for (j=0; j<n; j++)

scanf("%d",&a[i][j]);

change(p,n); //调用函数,实现交换

for (i=0; i<n; i++) //输出已交换的矩阵

{

for (j=0; j<n; j++)

printf("%d ",a[i][j]);

printf("\n");

}

free(p);

free(a);

return 0;

}

/* C++代码 */

int main()

{

void change(int *,int );

int **a,*p,i,j;

int n;

cin>>n;

p=new int[n*n];

a=new int*
;

for(i=0; i<n; i++)

a[i]=p+n*i;

for (i=0; i<n; i++) //输入矩阵

for (j=0; j<n; j++)

cin>>a[i][j];

change(p,n); //调用函数,实现交换

for (i=0; i<n; i++) //输出已交换的矩阵

{

for (j=0; j<n; j++)

cout<<a[i][j]<<" ";

cout<<endl;

}

delete []p;

delete []a;

return 0;

}

[Submit][Status][Web
Board]
한국어
中文
فارسی English
ไทย

Anything about the Problems, Please Contact Admin:admin

All Copyright Reserved 2010-2014
HUSTOJ TEAM

GPL2.0 2003-2014
HUSTOJ Project TEAM
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: