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[], int n)
{      
int i, j;      
for (i = 0; i < n / 2;i++)      
for (j = n / 2 + 1; j < n; j++)               
swap(&a, &a);
}
int main()
{      
int a = { 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);                        
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
点击插入代码
将你的代码放到代码应该在的地方
就能保持代码缩进格式了


我是新人,第一次发帖不太懂怎么发!谢谢你的指导!
页: [1]
查看完整版本: 矩阵变化