C语言写程序,要求使用算法给定若干不同的整数构成的升序序列,请编写一个程序,找出序列中有多少个数是序列中其他两个数的平均值。 输入数据 输入有多组测试样例。 每组测试样例的第一行为一个整数n(3≤n≤1000) 。 第二行为n 个不同的正整数,为该序列中的各个元素。所有的元素以升序排列,保证每个元素不超过109 。 输出数据 对每组测试样例,请在单独的行中输出所求的结果。
时间: 2023-11-28 21:51:11 浏览: 91
C语言程序 计算所输入的整数n的1到n总和和平均数
以下是使用C语言编写的程序,实现了上述要求:
```c
#include <stdio.h>
int main() {
int n, i, j, count;
int a[1000];
while (scanf("%d", &n) != EOF) {
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
count = 0;
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
int sum = a[i] + a[j];
if (sum % 2 == 0) { // 如果和是偶数才有可能是平均值
int avg = sum / 2;
int k;
for (k = 0; k < n; k++) {
if (k != i && k != j && a[k] == avg) {
count++;
break;
}
}
}
}
}
printf("%d\n", count);
}
return 0;
}
```
程序的思路是,枚举所有的数对,计算它们的和是否是偶数,如果是偶数,则计算它们的平均值,然后再枚举所有的数,找到是否有一个数等于这个平均值即可。如果找到了,就把计数器加一。最终输出计数器的值即可。
注意,为了避免重复计数,内层循环必须从外层循环的下一个位置开始。同时,如果找到了一个平均值,就要立即退出内层循环,否则会重复计数。
阅读全文