c语言5x5矩阵实验思路,/*8.10.将一个5x5矩阵中最大的元素放在中心, 四个角分别放4个最小的元素(顺序为从左到右,从上到下依次从小到大排序), 写一个函数实现之,用main函数...

回复 楼主 jiqiunianri

按照2楼的修改,你的程序就没有问题了。我按照题目的意思,也写了一个,只是输入是随意的25个数,输出是个二维数组。纯属凑个热闹(既是凑热闹,本意是将处理部分写成函数的,也就不写了):

21c92f7342edc52acb5684b0b88bdcec.png程序代码:#include

int main()

{

int sort(int *p,int n);

int a[5][5];

int b[25];

int i, j, k = 25;

int temp1, temp2, temp3, temp4;

printf("请输入:\n");

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

{

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

{

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

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

k++;

}

}

sort(b,k);

temp1 = b[1];

temp2 = b[2];

temp3 = b[3];

temp4 = b[24];

for (j = 1; j < 4; j++) // 处理第 0 行

{

b[j] = b[j + 3];

}

b[4] = temp1;

for (j = 5; j < 12; j++) // 处理第 1 行及第 2 行前半

{

b[j] = b[j + 2];

}

b[12] = temp4;

for (j = 13; j < 20; j++) // 处理第 2 行后半第 3 行

{

b[j] = b[j + 2];

}

b[20] = temp2;

for (j = 21; j < 24; j++) // 处理第 4 行

{

b[j] = b[j + 1];

}

b[24] = temp3;

k = 0;

for (i = 0; i < 5; i++) // 一维数组转二维数组

{

for (int j = 0; j < 5; j++)

{

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

k++;

}

}

for (i = 0; i < 5; i++) // 输出数组

{

for (int j = 0; j < 5; j++)

{

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

}

printf("\n");

}

return 0;

}

int sort(int *p,int n) // 对一维数 b 组排序

{

int i, j, temp;

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

{

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

{

if (*(p + j) > *(p + j + 1))

{

temp = *(p + j);

*(p + j) = *(p + j + 1);

*(p + j + 1) = temp;

}

}

}

return 0;

}

[此贴子已经被作者于2020-12-28 11:30编辑过]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值