|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
给定一个整数数组,请求出该数组中两数之差(绝对值)的最大值。 要求单独定义函数实现。
输入
第一行为一个正整数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[0] > arr[1])
{
max = arr[0];
min = arr[1];
}
else
{
max = arr[1];
min = arr[0];
}
for (; i < n; i++)
{
if (arr[i] < min)
{
min = arr[i];
}
else if (arr[i] > max)
{
max = arr[i];
}
}
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[i]);
}
unsigned int result;
result = max_difference(arr, n);
printf("%u\n", result);
return 0;
}
- #include <stdio.h>
- int main(void)
- {
- int d[10000] , i , j , n , m , x ;
- scanf("%d" , & n) ;
- for(i = 0 ; i < n ; i ++) scanf("%d" , & d[i]) ;
- for(i = m = 0 ; i < n - 1 ; i ++) {
- for(j = i + 1 ; j < n ; j ++) {
- x = (d[j] >= d[i]) ? d[j] - d[i] : d[i] - d[j] ;
- 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>
复制代码
|
|