与琪热恋 发表于 2021-3-21 12:25:02

最大差值

给定一个整数数组,请求出该数组中两数之差(绝对值)的最大值。 要求单独定义函数实现。
输入
第一行为一个正整数n(1<n≤10000)n(1 <= n <=10000)n(1<n≤10000),随后第二行为n个整数。
输出
该数组中两数之差(绝对值)的最大值。
示例输入
5
105 7 9 16 -31
示例输出
136

我的错误程序:
#include<stdio.h>
#include<math.h>
unsigned int max_difference(const int* arr, unsigned int n)
{
        int i = 2;
        int min, max;
        if (arr > arr)
        {
                max = arr;
                min = arr;
        }
        else
        {
                max = arr;
                min = arr;
        }

        for (; i < n; i++)
        {
                if (arr < min)
                {
                        min = arr;
                }
                else if (arr > max)
                {
                        max = arr;
                }
        }
        return (max - min);
}

int main()
{
        unsigned int n;
        int* arr = 0;
        scanf_s("%d", &n);
        for(int i=0;i<n;i++)
        {
                scanf_s("%d", &arr);
        }
        unsigned int result;
        result = max_difference(arr, n);
        printf("%u\n", result);
        return 0;
}

jackz007 发表于 2021-3-21 13:32:35

#include <stdio.h>

int main(void)
{
      int d , i , j , n , m , x                               ;
      scanf("%d" , & n)                                              ;
      for(i = 0 ; i < n ; i ++) scanf("%d" , & d)               ;
      for(i = m = 0 ; i < n - 1 ; i ++) {
                for(j = i + 1 ; j < n ; j ++) {
                        x = (d >= d) ? d - d : d - d ;
                        if(x > m) m = x                              ;
                }
      }
      printf("%d\n" , m)                                             ;
}
      编译、运行实况
D:\00.Excise\C>g++ -o x x.c

D:\00.Excise\C>x
5
105 7 9 16 -31
136

D:\00.Excise\C>
页: [1]
查看完整版本: 最大差值