我正在努力解决这个问题:
给出五个正整数,找出可以通过将五个整数中的四个正好相加而计算出的最小值和最大值.然后将各自的最小值和最大值打印为一行两个空格分隔的长整数. (输入是数组
arr
的五个元素)
void miniMaxSum(int arr_count, int *arr)
{
unsigned long int sum1, sum2, sum3, sum4, sum5, max, min;
int i;
sum1 = arr[0] + arr[1] + arr[2] + arr[3];
sum2 = arr[4] + arr[1] + arr[2] + arr[3];
sum3 = arr[0] + arr[4] + arr[2] + arr[3];
sum4 = arr[0] + arr[1] + arr[4] + arr[3];
sum5 = arr[0] + arr[1] + arr[2] + arr[4];
min = max = sum1;
unsigned long int sumall[5] = { sum1, sum2, sum3, sum4, sum5 };
for (i = 0; i < arr_count; i++) {
if (sumall[i] >= max) {
max = sumall[i];
} else if (sumall[i] <= min) {
min = sumall[i];
}
}
printf("%lu %lu", min, max);
}
上面的函数给出输出
2063136757 18446744072159051663
对于输入
256741038 623958417 467905213 714532089 938071624