1.计算数组的最大和,以及最大差
要求:
定义函数实现返回最大差值
定义函数实现返回最大和值
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int MAXH(int arr[],int g);
int MAXH(int arr[],int g)
{
int i,j;
int maxhez;
int temp;
for(i=1;i<g;i++)
{
for(j=0;j<g-i;j++)
{
if(arr[j]>arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
printf("排序后的顺序为:\n");
for(i=0;i<g;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
maxhez = arr[g-1] + arr[g-2];
return maxhez;
}
int MAXC(int arr[],int g);
int MAXC(int arr[],int g)
{
int i,j;
int maxchaz;
int temp;
for(i=1;i<g;i++)
{
for(j=0;j<g-i;j++)
{
if(arr[j]>arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
maxchaz = arr[g-1] - arr[0];
return maxchaz;
}
int main(int argc, const char *argv[])
{
int n;
printf("输入数组个数:\n");
scanf("%d",&n);
int arr[n];
int i,j;
int maxcha,maxhe;
for(i=0;i<n;i++)
{
printf("请输入数组第%d个值:\n",i+1);
scanf("%d",&arr[i]);
}
//输入数组
printf("------------------------------\n");
maxhe = MAXH(arr,n);
printf("最大和值为;%d\n",maxhe);
maxcha = MAXC(arr,n);
printf("最大差值为;%d\n",maxcha);
printf("------------------------------\n");
return 0;
}
输入数组个数:
22
请输入数组第1个值:
60
请输入数组第2个值:
51
请输入数组第3个值:
23
请输入数组第4个值:
515
请输入数组第5个值:
554
请输入数组第6个值:
22
请输入数组第7个值:
54
请输入数组第8个值:
15
请输入数组第9个值:
46
请输入数组第10个值:
8
请输入数组第11个值:
5
请输入数组第12个值:
62
请输入数组第13个值:
45
请输入数组第14个值:
75
请输入数组第15个值:
5
请输入数组第16个值:
45
请输入数组第17个值:
45
请输入数组第18个值:
757
请输入数组第19个值:
12
请输入数组第20个值:
5
请输入数组第21个值:
2
请输入数组第22个值:
27
------------------------------
排序后的顺序为:
2 5 5 5 8 12 15 22 23 27 45 45 45 46 51 54 60 62 75 515 554 757
最大和值为;1311
最大差值为;755
------------------------------
20230710 学习笔记思维导图

该程序使用C语言实现,通过两个函数分别计算给定数组的最大和与最大差值。首先对数组进行排序,然后返回最大的两个数之和及数组的最大值与最小值之差。在示例中,输入22个整数后,程序输出了排序后的数组、最大和为1311及最大差值为755。
2460





