C语言 谁给详细讲下这道题,有答案,.

/*习题描述:将一个5*5的矩阵中最大的元素放在中心,四个角分别放四个最小的元素(顺序从左到右,从上到下顺序依次从小到大存放),写一个函数实现之。用main函数调用。例如... /*
习题描述:
将一个5*5的矩阵中最大的元素放在中心,四个角分别放四个最小的元素(顺序从左到右,从上到下顺序依次从小到大存放),写一个函数实现之。用main函数调用。
例如原来矩阵:
35 34 33 32 31
30 29 28 27 26
25 24 23 22 21
20 19 18 17 16
15 14 13 12 11

改变后的矩阵
11 34 33 32 12
30 29 28 27 26
25 24 35 22 21
20 19 18 17 16
13 23 15 31 14

*/

#include <stdio.h>
main()
{
int a[] = {35, 34, 33, 32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11};

int b=0;

for(int i=0;i<5;i++)
{
for(int j=i+1;j<25;j++)
{
if(i<4)
{
if(a[j]<a[i])
{

b = a[i];
a[i] = a[j];
a[j] = b;
}
}
else
{
if(a[j]>a[i])
{

b = a[i];
a[i] = a[j];
a[j] = b;
}
}
}
}
b = a[12];
a[12] = a[4];
a[4] = a[1];
a[1] = b;

b = a[20];
a[20] = a[2];
a[2] = b;

b = a[24];
a[24] = a[3];
a[3] = b;

for(int y=0;y<5;y++)
{
for(int x=0;x<5;x++)
{
printf("%d ", a[y*5+x]);
}
printf("\n");
}

}
我没看懂 每条语句都最好讲下拉 谢谢
展开
 我来答
匿名用户
推荐于2016-06-09
展开全部
首先,这个所谓的答案并不符合题目要求,所以虽然结果正确,但是我不能给它打对号!
1.
题目要求用函数实现这个过程,并且在main()中调用这个函数,这一点程序没有做到!
2.
程序中有许多地方不符合ANSI C标准,所以与编译器的兼容性极差。

********************************************
解释如下,算法很简单,自己多想一想,也可以弄明白!

#include <stdio.h>
int main(void)
{
int a[] = {35, 34, 33, 32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11};

int b=0,i,j,x,y;

for(i=0;i<5;i++)/*这个循环用于对数组a排序*/
{
for(j=i+1;j<25;j++)
{
if(i<4)/*数组a的前4个元素将存放这个数组中最小的四个数,这里用于从所有元素中找出四个最小的数*/
{
if(a[j]<a[i])
{

b = a[i];
a[i] = a[j];
a[j] = b;
}
}
else/*数组a的第5到最后一个元素用于存放由其余数字组成的一个已排序的增减数列*/
{
if(a[j]>a[i])
{

b = a[i];
a[i] = a[j];
a[j] = b;
}
}
}
}

/*以下的三段用于将5个有特殊要求的元素放在合适的位置*/
b = a[12];/*这里用于将最大值放到“中心”位置*/
a[12] = a[4];
a[4] = a[1];
a[1] = b;

b = a[20]; /*这里将第三小的元素a[2]和“左下角”的元素对调*/
a[20] = a[2];
a[2] = b;

b = a[24];/*这里将第四小的元素a[3]和“右下角”的元素对调*/
a[24] = a[3];
a[3] = b;

for(y=0;y<5;y++)/*输出结果*/
{
for(x=0;x<5;x++)
{
printf("%d ", a[y*5+x]);
}
printf("\n");
}
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式