随机生成长度为20的一维整型数组,取值范围在1~100之间,假设数组的尾部数字和头部数字首尾相连,构成环形的一组数,编程找出相邻的4个数,其相加之和最大,并给出它们的起始位置
时间: 2023-04-30 21:01:22 浏览: 114
以下是Python代码实现:
import random
# 生成长度为20的一维整型数组
arr = [random.randint(1, 100) for i in range(20)]
# 将数组的尾部数字和头部数字首尾相连
arr.append(arr[0])
# 初始化最大和为0
max_sum = 0
# 初始化最大和的起始位置为0
max_start = 0
# 遍历数组,找出相邻的4个数,其相加之和最大
for i in range(len(arr) - 3):
temp_sum = arr[i] + arr[i+1] + arr[i+2] + arr[i+3]
if temp_sum > max_sum:
max_sum = temp_sum
max_start = i
# 输出结果
print("数组:", arr[:-1])
print("相邻的4个数,其相加之和最大为:", max_sum)
print("起始位置为:", max_start)
相关问题
2.一维整型数组a的大小为10,元素值从键盘输入;找出数组a中连续3个数据元素的和最大的,并输出这3个数据元素。(注意该一维数组首尾相连)
以下是C语言实现一维数组中连续3个数据元素的和最大的代码:
```c
#include <stdio.h>
int main()
{
int a[10], i, max, sum, index;
printf("请输入10个整数:\n");
for(i = 0; i < 10; i++)
{
scanf("%d", &a[i]);
}
max = a[0] + a[1] + a[2];
index = 0;
for(i = 1; i < 10; i++)
{
sum = a[i % 10] + a[(i + 1) % 10] + a[(i + 2) % 10];
if(sum > max)
{
max = sum;
index = i % 10;
}
}
printf("连续3个数据元素的和最大的是:%d %d %d\n", a[index], a[(index + 1) % 10], a[(index + 2) % 10]);
return 0;
}
```
包含10个元素的一维整型数组a,元素值从键盘输入;找出数组a中连续3个数据元素的和最大的,并输出这3个数据元素。(注意该一维数组首尾相连)
以下是C语言的代码实现,用于找出数组a中连续3个数据元素的和最大的,并输出这3个数据元素:
```c
#include <stdio.h>
int main() {
int a[10], i, max_sum = -2147483648, max_index = 0;
for (i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
for (i = 0; i < 10; i++) {
int sum = a[i] + a[(i+1)%10] + a[(i+2)%10];
if (sum > max_sum) {
max_sum = sum;
max_index = i;
}
}
printf("%d %d %d\n", a[max_index], a[(max_index+1)%10], a[(max_index+2)%10]);
return 0;
}
```
输入10个整数后,程序会遍历整个数组,计算每个连续3个数据元素的和,并记录下最大的和以及对应的下标。最后输出这3个数据元素。
阅读全文