• C语言实现 1.在一个二维数组中形成 n 阶矩阵,2.去掉靠边元素,生成新的 n-2 阶矩阵;3.求矩阵主对角线下元素之和:4.以方阵形式输出数组。


    矩阵形式:

    1 1 1 1 1

    2 1 1 1 1

    3 2 1 1 1

    4 3 2 1 1

    5 4 3 2 1

    完整代码:

    1. /*编写以下函数
    2. 1.在一个二维数组中形成如以下形式的 n 阶矩阵:
    3. 1 1 1 1 1
    4. 2 1 1 1 1
    5. 3 2 1 1 1
    6. 4 3 2 1 1
    7. 5 4 3 2 1
    8. 2.去掉靠边元素,生成新的 n-2 阶矩阵;
    9. 3.求矩阵主对角线下元素之和:
    10. 4.以方阵形式输出数组
    11. */
    12. #include<stdio.h>
    13. #include<stdlib.h>
    14. //全局变量,所有函数都可以访问到
    15. int **arr;
    16. //创建n阶矩阵
    17. void func1(int n){
    18. // 要使用malloc函数动态分配内存
    19. arr = (int **)malloc(n * sizeof(int *));
    20. for(int i = 0; i < n; i++){
    21. arr[i] = (int *)malloc(n * sizeof(int));
    22. }
    23. // 创建数组
    24. for (int i = 0; i < n; i++){
    25. //先把所有的元素都赋值为1
    26. for (int k = 0; k < n; k++)
    27. {
    28. arr[i][k]=1;
    29. }
    30. //让后按照三角形的规律赋值
    31. for (int j = 0; j < i; j++){
    32. arr[i][j]=i+1-j;
    33. }
    34. }
    35. }
    36. //创建n-2阶矩阵
    37. void func2(int n){
    38. //只需要调用n-2时的func1就可以
    39. func1(n-2);
    40. }
    41. //求矩阵主对角线下元素之和
    42. int func3(int n){
    43. int sum=0;
    44. //循环累加对角线下的所有元素,只需要j<i就可以
    45. for (int i = 0; i < n; i++)
    46. {
    47. for (int j = 0; j < i; j++)
    48. {
    49. sum+=arr[i][j];
    50. }
    51. }
    52. return sum;
    53. }
    54. //以方阵形式输出数组
    55. void func4(int n){
    56. // 打印矩阵
    57. printf("该矩阵为:\n");
    58. for (int i = 0; i < n; i++){
    59. for (int j = 0; j < n; j++){
    60. printf("%d ", arr[i][j]);
    61. }
    62. printf("\n");
    63. }
    64. }
    65. int main(){
    66. int n=0;
    67. printf("请输入矩阵的行数:");
    68. scanf("%d",&n);
    69. //创建n阶矩阵
    70. func1(n);
    71. // 打印矩阵
    72. func4(n);
    73. printf("该矩阵主对角线下元素之和为:%d\n",func3(n));
    74. //生成新的矩阵
    75. func2(n);
    76. //打印新的矩阵
    77. func4(n-2);
    78. printf("该矩阵主对角线下元素之和为:%d\n",func3(n-2));
    79. return 0;
    80. }

    运行截图:

  • 相关阅读:
    thinkphp漏洞总结
    Python之socket简玩
    微信小程序云开发如何实现微信支付,业务逻辑又怎样才算可靠
    【GNS3 GraduProj】交换机Ansible脚本测试(文件备份)
    缓存-Spring Cache 缓存抽象
    springboot 实现跨域的几种方式
    【SSM框架】搭建MyBatis
    网络安全(黑客)自学
    Python类的方法
    浅析ActivityThread#main()方法和生命周期事务处理(代码基于Android-12)
  • 原文地址:https://blog.csdn.net/m0_71709382/article/details/134168906