偶尔z 2024-03-30 20:40 采纳率: 93%
浏览 21
已结题

【指针&一维数组&函数】【输出参数与返回值】用函数在数组中找最大最小值

题目描述
输入一组数据,将该批数据存入数组中,并找出其中的最大值,最小值
输入
第一行输入一个整数n
第二行输入n个整数
输出
最大值和最小值
样例输入
6 10 3 4 5 8 2
样例输出
max=10,min=2

img

  • 写回答

4条回答 默认 最新

  • 檀越@新空间 2024-03-30 20:40
    关注

    晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    这段代码存在一些语法错误和代码逻辑错误。下面是修正后的代码:

    #include <stdio.h>
    
    void inputarray(int a[], int n);
    void sumarray(int a[], int n, int *max, int *min);
    
    int main() {
        int b[100];
        int m, n, k;
        scanf("%d", &k);
        inputarray(b, k);
        sumarray(b, k, &m, &n);
        printf("max=%d, min=%d\n", m, n);
        return 0;
    }
    
    void inputarray(int a[], int n) {
        int i;
        for(i = 0; i < n; i++) {
            scanf("%d", &a[i]);
        }
    }
    
    void sumarray(int a[], int n, int *max, int *min) {
        int i;
        *max = *min = a[0];
        for(i = 1; i < n; i++) {
            if(a[i] > *max) {
                *max = a[i];
            }
            if(a[i] < *min) {
                *min = a[i];
            }
        }
    }
    

    解决方案:

    1. 修正函数inputarray的声明和定义,在函数参数中去掉多余的L
    2. 声明和定义新的函数sumarray,用来找出数组中的最大值和最小值。该函数的参数列表包括要查找的数组、数组长度,以及指向最大值和最小值的指针。
    3. main()函数中,调用inputarray函数将用户输入的数据保存到数组中。
    4. main()函数中,调用sumarray函数获取数组的最大值和最小值,并将值保存在变量mn中。
    5. 使用printf函数输出最大值和最小值。

    代码修正后,可以正确输出最大和最小值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月21日
  • 已采纳回答 4月13日
  • 创建了问题 3月30日