当前位置:   article > 正文

C语言实现输入一个 N*N 矩阵,并将矩阵转置输出_c语言输入一个n行n列的矩阵

c语言输入一个n行n列的矩阵

完整代码:

  1. //输入一个 N*N 矩阵,并将矩阵转置输出
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. int main(){
  5. int n=0;
  6. printf("请输入矩阵的行数:");
  7. scanf("%d",&n);
  8. //C语言不允许对数组的大小作动态定义
  9. // int arr[n][n];直接定义是错误的
  10. // 要使用malloc函数动态分配内存
  11. int **arr = (int **)malloc(n * sizeof(int *));
  12. for(int i = 0; i < n; i++){
  13. arr[i] = (int *)malloc(n * sizeof(int));
  14. }
  15. // 输入矩阵
  16. printf("请输入矩阵的元素:\n");
  17. for (int i = 0; i < n; i++){
  18. for (int j = 0; j < n; j++){
  19. scanf("%d", &arr[i][j]);
  20. }
  21. }
  22. // 打印矩阵
  23. printf("该矩阵为:\n");
  24. for (int i = 0; i < n; i++){
  25. for (int j = 0; j < n; j++){
  26. printf("%d ", arr[i][j]);
  27. }
  28. printf("\n");
  29. }
  30. // 逆置矩阵
  31. for (int i = 0; i < n; i++){
  32. for (int j = 0; j < i; j++){
  33. int temp = arr[i][j];
  34. arr[i][j] = arr[j][i];
  35. arr[j][i] = temp;
  36. }
  37. }
  38. // 打印逆置后的矩阵
  39. printf("逆置后矩阵为:\n");
  40. for (int i = 0; i < n; i++){
  41. for (int j = 0; j < n; j++){
  42. printf("%d ", arr[i][j]);
  43. }
  44. printf("\n");
  45. }
  46. // 释放动态分配的内存
  47. for(int i = 0; i < n; i++){
  48. free(arr[i]);
  49. }
  50. free(arr);
  51. return 0;
  52. }

运行截图:

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号