代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int max_min_sum_dev(int n, int arr[n], int m)
{
for(int i = 1; i < n; i++)
{
int count = 0;
for(int j = 0; j < n - i; j++)
{
if(arr[j] > arr[j + 1])
{
count++;
int t = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = t;
}
}
if(count == 0)
break;
}
/*
printf("排序后的数组:\n");
for(int i = 0; i < n; i++)
printf("%d ", arr[i]);
printf("\n");
*/
if(m == 1)
{
printf("数组最大和为:");
return arr[n - 1] + arr[n - 2];
}
else if(m == 2)
{
printf("数组最大差为:");
return arr[n - 1] - arr[0];
}
else if(m == 3)
{
printf("数组最小和为:");
return arr[1] + arr[0];
}
else
{
exit(-1);
}
}
int main(int argc, const char *argv[])
{
int n;
int m = 4;
printf("请输入数组元素个数:\n");
scanf("%d", &n);
int arr[n];
printf("请输入数组元素:\n");
for(int i = 0; i < n; i++)
scanf("%d", &arr[i]);
while(m != 0)
{
printf("请输入一个数:\n");
printf("输入数为1,计算数组最大和 ");
printf("输入数为2,计算数组最大差 ");
printf("输入数为3,计算数组最小和 ");
printf("输入数为0,退出程序\n");
scanf("%d", &m);
int k = max_min_sum_dev(n, arr, m);
printf("%d\n", k);
}
return 0;
}
结果
思维导图