题目描述: | 老师在一个不透明的纸袋里放入一些乒乓球,每个乒乓球上都有一个数字,当球放入之后,让小明从中随机拿一个。在球放入之后,小明抽之前,老师想让您帮忙编程先计算一下,拿到某个数字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; } |
来源: | 数组问题 |
解答: | 数组问题 |