不是VIP会员,不能显示答案

1354 【入门】拿到某个数的概率是多少?

时间限制: 1 Sec 内存限制: 16 MB
题目描述:

老师在一个不透明的纸袋里放入一些乒乓球,每个乒乓球上都有一个数字,当球放入之后,让小明从中随机拿一个。在球放入之后,小明抽之前,老师想让您帮忙编程先计算一下,拿到某个数字x的概率是多少?

比如:老师向袋子里面放入了5个球,对应的数字分别是2 3 2 4 2,那么拿到数字2的概率为3 / 5 = 0.6,拿到数字3的概率为1 / 5 = 0.2。(8.2)

输入:

第一行是一个整数n代表袋子里球的个数

第二行n个数,代表袋子里每个球上面的数字的值

第三行一个整数x,是要计算出现概率的数字(x不一定在第二行的n个数中出现,也就是说x对应的球可能在袋子里没有)

输出: x被拿到的概率(结果保留2位小数)
样例输入:
5
2 3 2 4 2
2
样例输出:
0.60
提示:

拿到数字x的概率 = 数字x的个数 / 总数字的个数

第一步:求出数字x在数组中出现的次数

第二步:概率 = x出现的次数 / 总元素个数


#include <bits/stdc++.h>
using namespace std;

int main() {
	int a[1000];//存储读入的数字
	int i,n,c = 0,x;//c统计x在数组中出现的次数
	cin>>n;//读入的数字的数量
	//读入n个数
	for(i = 0;i < n;i++){
		cin>>a[i];
	} 
	//读入x,表示要找的数
	cin>>x; 
	
	//求出x在数组中出现了几次
	for(i = 0;i < n;i++){
		if(a[i] == x){
			c++;
		}
	} 
	
	//输出x出现的概率
	cout<<fixed<<setprecision(2)<<c * 1.0 / n; 
	return 0;
}

来源: 数组问题
解答: 数组问题