• c语言 二维数组(上课)


    源程序:

    #include <stdio.h>

    //求最大值的函数
    int highest(int m[3][4]) //形式参数是二维数组
    {
    int a = m[0][0]; //认为第一个数是最大值
    int i, j;
    for (i = 0; i < 3; i++) //外层循环控制行
    {
    for (j = 0; j < 4; j++) //内层循环控制列
    {
    if (a < m[i][j])
    a = m[i][j];
    }
    }
    return a;
    }
    //求最小值的函数
    int lowest(int m[3][4]) //形式参数是二维数组
    {
    int b = m[0][0]; //认为第一个数是最大值
    int i, j;
    for (i = 0; i < 3; i++) //外层循环控制行
    {
    for (j = 0; j < 4; j++) //内层循环控制列
    {
    if (b > m[i][j])
    b = m[i][j];
    }
    }
    return b;
    }

    void main()
    {
    int array[3][4] = { {11,25,3,48},{25,16,77,28},{39,10,19,32} };//二维数组
    int(*point)[4]; //指向二维数组的指针
    point = array; //指针指向二维数组

    int i, j;
    //输出二维数组
    printf("二维数组:\n");
    for (i = 0; i < 3; i++) //外层循环控制行
    {
    for (j = 0; j < 4; j++) //内层循环控制列
    {
    printf("%3d", array[i][j]); //输出二维数组
    }
    printf("\n");
    }
    printf("\n");

    //转置二维数组
    printf("转置后的二维数组:\n");
    for (i = 0; i < 4; i++)
    {
    for (j = 0; j < 3; j++)
    {
    printf("%3d", array[j][i]);
    }
    printf("\n");
    }
    printf("\n");

    //求第一个元素开始的对角线之和
    int duijiaox = 0;
    for (i = 0; i < 3; i++)
    {
    duijiaox += array[i][i];
    }
    printf("对角线之和为:%d\n", duijiaox);
    printf("\n");
    //二维数组中的最大值和最小值

    int max, min;
    max = highest(point); //highest求最大值的函数
    min = lowest(point); //求最小值的函数

    printf("最大值:%d, 最小值:%d\n", max, min);
    printf("\n");

    //第一列与第四列交换
    printf("第一列与最后一列交换:\n");
    int t[3] = { 0,0,0 };
    for (i = 0; i < 3; i++)
    {
    t[i] = array[i][0];
    }
    for (i = 0; i < 3; i++)
    {
    array[i][0] = array[i][3];
    }
    for (i = 0; i < 3; i++)
    {
    array[i][3] = t[i];
    }
    for (i = 0; i < 3; i++) //外层循环控制行
    {
    for (j = 0; j < 4; j++) //内层循环控制列
    {
    printf("%3d", array[i][j]);
    }
    printf("\n");
    }
    printf("\n");

    printf("按列逆序输出:\n");
    int tt;
    for (i = 0; i < 3; i++)
    {
    for (j = 0; j < 2; j++)
    {
    tt = *(*(point + i) + j);
    *(*(point + i) + j) = *(*(point + i) + 3 - j);
    *(*(point + i) + 3 - j) = tt;
    }
    }
    for (i = 0; i < 3; i++) //外层循环控制行
    {
    for (j = 0; j < 4; j++) //内层循环控制列
    {
    printf("%3d", *(*(point + i) + j));
    }
    printf("\n");
    }
    }

    运行结果 :

  • 相关阅读:
    Ubuntu的shell之bash和dash
    Linux下烧写工具DNW和USB驱动安装(一)
    make -C M=
    uname -r和uname -a了解
    如何添加Samba用户
    Ubuntu下配置samba实现文件夹共享
    [Jenkins]运行shell报错:寻找匹配的 `"' 是遇到了未预期的文件结束符
    [Shell] 调试shell脚本的技巧 | 校验shell脚本语法 |寻找匹配的 `"' 是遇到了未预期的文件结束符
    [Python]通过python-jenkins操作jenkins slave启动job | 通过python-jenkins实现ios自动化打包接口
    pod: command not found
  • 原文地址:https://www.cnblogs.com/duanqibo/p/16079796.html
Copyright © 2020-2023  润新知