吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1140|回复: 5
收起左侧

[学习记录] 矩阵变化

[复制链接]
zhaoqingdz 发表于 2022-7-28 13:57
本帖最后由 zhaoqingdz 于 2022-7-28 14:01 编辑

    本人初学自学C语言,经常会遇到各种难题,下面有题关于指针的,必须要用指针来完成的矩阵变化,题目是“下列程序完成对n阶矩阵(n为奇数)的变换,将原矩阵左下角n/2阶子块中的数据与右上角n/2阶子块中的数据作交换,显示交换过子块后的n阶矩阵。”
    以下是本人写的代码:
   #include<stdio.h>
void swap(int *x, int *y)
{        
int t;
t = *x;        
*x = *y;        
*y = t;
}
void change(int a[][5], int n)
{        
int i, j;        
for (i = 0; i < n / 2;i++)        
for (j = n / 2 + 1; j < n; j++)               
swap(&a[j], &a[i + n / 2 + 1][j - (n / 2 + 1)]);
}
int main()
{        
  int a[5][5] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 };               
  int i, j,k=0;        
  int n = 5;        
  change(a, n);        
for (i = 0; i < 5; i++)      
{               
for (j = 0; j < 5; j++)               
{                        
printf("%d ", a[j]);                        
k++;               
}               
if (k % 5 == 0)                       
printf("\n");      
}      
return 0;
}


各位大佬可以讨论下,还有其他实现写法吗?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

huansang 发表于 2022-7-28 15:16
学习一下。。
inhk 发表于 2022-7-28 15:16
歪个楼,用matlab实现 矩阵左下角块与右上角块中的数据作交换 就一行代码的事情
Moakir 发表于 2022-7-28 17:33
有个思路。用空间换时间,新开辟一个数组,按照要求把另一个数组排列好放进去
vtor 发表于 2022-7-29 09:25
点击插入代码
将你的代码放到代码应该在的地方
就能保持代码缩进格式了
现在你这个代码,看起来太心累了
 楼主| zhaoqingdz 发表于 2022-7-29 19:10
vtor 发表于 2022-7-29 09:25
点击插入代码
将你的代码放到代码应该在的地方
就能保持代码缩进格式了

我是新人,第一次发帖不太懂怎么发!谢谢你的指导!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表