找出具有10个整数的一维数组中连续三个数据元素和最大的数据元素,并输出。(注意该一维数组首尾相连)
连续三个数据元素和一维数组首尾相连什么意思?
这个题目的思路是什么?
找出具有10个整数的一维数组中连续三个数据元素和最大的数据元素,并输出。(注意该一维数组首尾相连)
连续三个数据元素和一维数组首尾相连什么意思?
这个题目的思路是什么?
连续三个数据元素是a[0] - a[2]、a[1]-a[3]这样
一维数组首尾相连是指a[9] 、a[0]、a[1]作为一组
这个题目是求连续三个数的和中最大的是多少。
一种思路:
可以定义一个12个元素大小的数组,然后把第一个和第二个元素放到数组的最后面,每3个数一组求和,比较大小,找出最大的即可
也可以先找出a[8]+a[9]+a[0]和a[9]+a[0]+a[1]中的最大值,然后跟其他组的和进行比较。
运行结果:
代码:
#include <stdio.h>
int main()
{
int a[10],i;
int maxsum = 0,s=0;
printf("请输入10个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
s = a[8] + a[9] + a[0];
maxsum = a[9] + a[0] + a[1]; //先找出a[9]和a[0]/a[1]这3个元素的和
if(s > maxsum)
maxsum = s;
//在找其他的组
for(i=0;i<8;i++)
{
s = a[i] + a[i+1]+a[i+2];
if(s>maxsum)
maxsum = s;
}
printf("%d",maxsum); //输出最大值
return 0;
}