矩阵变化
本帖最后由 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;
}
各位大佬可以讨论下,还有其他实现写法吗? 学习一下。。 歪个楼,用matlab实现 矩阵左下角块与右上角块中的数据作交换 就一行代码的事情 有个思路。用空间换时间,新开辟一个数组,按照要求把另一个数组排列好放进去 点击插入代码
将你的代码放到代码应该在的地方
就能保持代码缩进格式了
现在你这个代码,看起来太心累了 vtor 发表于 2022-7-29 09:25
点击插入代码
将你的代码放到代码应该在的地方
就能保持代码缩进格式了
我是新人,第一次发帖不太懂怎么发!谢谢你的指导!
页:
[1]