代码如下:

#include <stdio.h>

int main() {
    int a[4][4], *p, max;
    int i, j;

    // 输入二维数组元素
    printf("请输入二维数组a[4][4]的元素:\n");
    for (i = 0; i < 4; i++) {
        for (j = 0; j < 4; j++) {
            scanf("%d", &a[i][j]);
        }
    }

    // 使用指针遍历二维数组并求每行最大值
    for (i = 0; i < 4; i++) {
        p = &a[i][0]; // 指针指向该行的第一个元素
        max = *p; // 初始最大值为该行第一个元素
        for (j = 1; j < 4; j++) {
            if (*(p + j) > max) { // 判断当前元素是否大于最大值
                max = *(p + j); // 更新最大值
            }
        }
        printf("第 %d 行的最大值为:%d\n", i + 1, max);
    }

    return 0;
}

解释:

  1. 定义二维数组 a[4][4] 和指针 p,用于存储数组元素和指向数组元素。
  2. 使用嵌套循环输入二维数组元素。
  3. 使用外层循环遍历每一行,内层循环使用指针 p 遍历该行的所有元素。
  4. 将指针 p 指向当前行的第一个元素,并将最大值 max 初始化为第一个元素的值。
  5. 使用内层循环遍历该行剩余元素,比较当前元素与最大值,更新最大值。
  6. 输出每行的最大值。

注意:

  • 该程序中使用了指针访问数组元素,提高了代码的效率和可读性。
  • 您可以根据需要修改数组的大小和元素类型。
  • 可以使用更简洁的方式来获取每行最大值,例如使用 max(a[i][0], max(a[i][1], max(a[i][2], a[i][3]))) 来直接获取最大值。
C语言二维数组指针求每行最大值

原文地址: https://www.cveoy.top/t/topic/ol9J 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录