11.24 作业 Problem C: 平均数在哪儿?
来源:互联网 发布:郑州学历网络教育 编辑:程序博客网 时间:2024/06/07 13:23
Description
给你一个正整数序列a1, a2, ..., an.,找出所有的i, 满足第i个数是其他所有数的平均数。
Input
第一行是一个正整数T,表示测试用例个数。每个测试用例的第一行是一个正整数n(2 ≤ n ≤ 2·105)。第二行是n个正整数a1, a2, ..., an (1 ≤ ai≤ 1000)。
Output
对于每组测试用例,第一行输出满足条件的数的个数,第二行输出所有满足条件的数的编号(两编号之间用一个空格隔开),编号为从1到n的正整数。
如果不存在满足条件的数,输出一个0,不用输出第二行。
Sample Input
341 309 455 12751 2 3 4 5450 50 50 50
Sample Output
01341 2 3 4
思路:
用两个数组
一个数组将输入的数储存起来用于循环比较大小
另一个数组将下标储存用于输出下标
注:注意将和转化为double型 不然可能会出现4/3=4/4的情况。导致题目WA。
代码:
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ int a[200001]; int b[200001]; int T; scanf("%d",&T); int n; int i,j,k; int sum; int flag; while(T--) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); sum=0; scanf("%d",&n); for(i=0; i<n; i++) { scanf("%d",&a[i]); sum += a[i]; } j=0; flag=0; for(i=0; i<n; i++) { if(((double)sum-a[i])/(n-1)==a[i])//double很关键 { b[j]=i+1;//储存下标 即第n个数 flag++; j++; } } if(flag==0) printf("0\n"); else { printf("%d\n",flag); for(k=0; k<flag; k++)//注意输出格式 if(k==0) printf("%d",b[k]); else printf(" %d",b[k]); printf("\n"); } } return 0;}
0 0
- 11.24 作业 Problem C: 平均数在哪儿?
- 作业8 问题 C: 平均数在哪儿?
- 作业1平均数1
- 作业1平均数2
- c/c++求平均数
- C语言期末:Problem C: 劳动课的作业
- 平均数
- 平均数
- 平均数
- 平均数
- 平均数
- 11.24 作业 Problem D: 筛选素数
- 11.24 作业 Problem E: 小学生算术
- 作业4:杨辉三角&奇偶阶乘&数组平均数
- 11.24 作业 Problem F: 老师的点名方案
- 11.10 作业 Problem C: 计算a-b之间特定数值之和
- c 作业
- c作业
- UVa 10158 并查集+位操作
- opencv初识(一)
- QT 资料下载集合
- LeetCode(135)Candy
- 详解Handler机制和模拟Hangler
- 11.24 作业 Problem C: 平均数在哪儿?
- 欢迎使用CSDN-markdown编辑器
- Android开发学习笔记:浅谈WebView
- 简单的GreendaoDemo操作进行增删该查
- JSP基础
- laravel5 图片上传
- SQL中类似三元运算符的语句
- 实验一:数据传送(四种方式实现)
- Windows远程桌面连接报错:“远程桌面用户”组的成员拥有该权限