题目一
计算数组的最大和与最大差
include <stdio.h>
#include <string.h>
#include <stdlib.h>
int Maxsum(int arr[],int len);
int Maxcha(int arr[],int len);
int main(int argc, const char *argv[])
{
int arr[]={2,23,4,12,5,33,23};
int len=sizeof(arr)/sizeof(int);
int maxsum=Maxsum(arr,len);
int maxcha=Maxcha(arr,len);
printf("最大和为%d最大差为%d\n",maxsum,maxcha);
return 0;
}
int Maxsum(int arr[],int len)
{
int i,j,max1,max2;
for(i=1;i<len;i++)
{
for(j=0;j<len-i;j++)
{
if(arr[j]>arr[j+1])
{
arr[j]=arr[j]^arr[j+1];
arr[j+1]=arr[j]^arr[j+1];
arr[j]=arr[j]^arr[j+1];
}
}
}
max1=arr[len-1];
max2=arr[len-2];
return max1+max2;
}
int Maxcha(int arr[],int len)
{
int i,j,max,min;
for(i=1;i<len;i++)
{
for(j=0;j<len-i;j++)
{
if(arr[j]>arr[j+1])
{
arr[j]=arr[j]^arr[j+1];
arr[j+1]=arr[j]^arr[j+1];
arr[j]=arr[j]^arr[j+1];
}
}
}
max=arr[len-1];
min=arr[0];
return max-min;
}
思维导图