c语言10个整数排成圈, 求最小的相邻3个数的和, 输出和。
时间: 2024-01-28 16:03:33 浏览: 48
思路:
1. 首先,我们需要输入这10个整数,并保存在一个数组中。
2. 然后,我们需要对这个数组进行排序,以便我们可以找出最小的相邻3个数的和。
3. 排序后,我们需要将数组的最后一个元素移动到数组的第一个位置,以便我们可以形成一个“圆”。
4. 接下来,我们需要遍历整个数组,计算相邻3个数的和,并找出其中的最小值。
5. 最后,输出最小值即可。
代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#define N 10
int main()
{
int a[N];
int i, j, k;
int min_sum = 0x7fffffff; // 初始化一个很大的数
// 输入10个整数
printf("请输入10个整数:\n");
for (i = 0; i < N; i++)
{
scanf("%d", &a[i]);
}
// 排序
for (i = 0; i < N - 1; i++)
{
for (j = i + 1; j < N; j++)
{
if (a[i] > a[j])
{
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
// 遍历数组,找最小的相邻3个数的和
for (i = 0; i < N; i++)
{
int sum = 0;
for (j = i, k = 0; k < 3; k++)
{
sum += a[j % N];
j++;
}
if (sum < min_sum)
{
min_sum = sum;
}
}
// 输出最小的相邻3个数的和
printf("最小的相邻3个数的和为:%d\n", min_sum);
return 0;
}
```
注意:这里使用了一个很大的数来初始化 `min_sum`,以便能够正确地找到最小值。