C语言给定若干不同的整数构成的升序序列,请编写一个程序,找出序列中有多少个数是序列中其他两个数的平均值。 输入数据 输入有多组测试样例。 每组测试样例的第一行为一个整数n(3≤n≤1000)。 第二行为n个不同的正整数,为该序列中的各个元素。所有的元素以升序排列,保证每个元素不超过109。 输出数据 对每组测试样例,请在单独的行中输出所求的结果。
时间: 2024-01-24 15:16:59 浏览: 111
以下是一个可能的C语言程序实现:
```c
#include <stdio.h>
int main()
{
int n, i, j, count;
int nums[1000];
while (scanf("%d", &n) == 1) {
for (i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
count = 0;
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
int avg = (nums[i] + nums[j]) / 2;
if (avg == nums[i] || avg == nums[j]) {
continue;
}
int k;
for (k = 0; k < n; k++) {
if (k == i || k == j) {
continue;
}
if (nums[k] == avg) {
count++;
break;
}
}
}
}
printf("%d\n", count);
}
return 0;
}
```
该程序使用了三重循环,对于每对不同的元素,计算它们的平均值,然后在序列中查找是否存在相同的值。注意要排除掉平均值等于这两个元素之一的情况。
阅读全文