最大差值
给定一个整数数组,请求出该数组中两数之差(绝对值)的最大值。 要求单独定义函数实现。输入
第一行为一个正整数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;
} #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]