题目描述
小明最近对概率问题很感兴趣。一天,小明和小红一起玩一个概率游戏,首先小明给出一个字母和一个单词,然后由小红计算这个字母在这个单词中出现的概率。字母不区分大小写。
例如,给定的字母是a,单词是apple,那么概率是0.20000。
输入
输入包含多组测试数据。每组数据包含一个字母和一个单词。
单词的长度不超过200。
输出
对于每一个输入,输出对应的概率,结果保留5位小数。
样例输入
a apple
c Candy
a banana
样例输出
0.20000
0.20000
0.50000
AC代码
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
char ch;
string s;
//cin可以连续读入一个字符和一个字符串
while (cin >> ch >> s)
{
//cnt表示字符出现的次数
int cnt = 0;
//遍历字符串,若当前元素与指定的元素相同,结果加一
for (int i = 0; i < s.size(); i++)
{
//字符相同(不考虑大小写)
if (s[i] == ch || char(s[i] + 32) == ch || char(s[i] - 32) == ch ) cnt += 1;
}
double res = (double)cnt / s.size();
printf("%.5lf\n",res);
}
return 0;
}
总结规律:
关于字符串的题,大部分都可以使用cin/cout进行读入和输出,或者使用getline(cin,s)来读入一行字符串,使用string s来定义字符串,使用s.size()来得到字符串的长度