c语言将行列转换的程序,C语言中如何制作行列可变的转置矩阵函数

首先做这个函数 必须得理解数组指针  也就是指向数组的指针

​【myfunc.c】

​//矩阵转置 matrix transpose   numxnum矩阵

void G_matrix_transnum(int (*p)[G_matrix_num]){

int i = 0,j = 0;

int tmp = 0;

for(i = 0;i < G_matrix_num;i++){

for(j = 0;j < G_matrix_num;j++){

if(j > i){

tmp = *(*(p + i) + j);

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

*(*(p + j) + i) = tmp;

}

}

}

}

​【myfunc.h】

​int G_matrix_num;

​//矩阵转置 matrix transpose   numxnum矩阵 3x3 void G_matrix_transnum(int (*)[G_matrix_num]);

​//当然除了定义函数外,还需要定义一个变量,用来声明函数里的变量,控制行数列数可变

​【mytest.c】

​there is test function.

#include

#include"myfunc.h"

int main(void){

​​//numxnum转置矩阵测试  successful

printf("请输入矩阵的行数或者是列数:\n");

scanf("%d",&G_matrix_num);

int a[G_matrix_num][G_matrix_num];

int (*p)[G_matrix_num];

int i = 0,j = 0;

p = a;

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

for(i = 0;i < G_matrix_num;i++){

for(j = 0;j < G_matrix_num;j++){

scanf("%d",(*(p + i) + j));

}

}

printf("转置前:\n");

for(i = 0;i < G_matrix_num;i++){

for(j = 0;j

printf("%d ",*(*(p + i) + j));

}

printf("\n");

}

G_matrix_transnum(p);

printf("转置后:\n");

for(i = 0;i < G_matrix_num;i++){

for(j = 0;j < G_matrix_num;j++){

printf("%d ",*(*(p + i) + j));

}

printf("\n");

}

printf("\n");

return 0;

}

​return result:

​tarena@ubuntu:~/myfunc$ gcc myfunc.c mytest.c -lm

tarena@ubuntu:~/myfunc$ ./a.out

请输入矩阵的行数或者是列数:

3

请输入矩阵:

1 2 3 4 5 6 7 8 9

转置前:

1 2 3

4 5 6

7 8 9

转置后:

1 4 7

2 5 8

3 6 9

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值