gpt4 book ai didi

c++ - 函数计算一个字母出现在句子中的概率

转载 作者:行者123 更新时间:2023-11-30 00:41:47 25 4
gpt4 key购买 nike

我有一个函数应该计算一个字母在一个句子中出现的次数,并基于此计算它在句子中出现的概率。为了做到这一点,我有一句话:

The Washington Metropolitan Area is the most educated and affluent metropolitan area in the United States.

一组结构,包含字母、它出现的次数以及它出现的概率,每个字母字符一个结构,标点符号和空格一个附加结构:

struct letters
{
char letter;
int occur;
double prob;
}box[53];

这是函数本身:

void probability(letters box[53], int sum
{
cout<<sum<<endl<<endl;
for(int c8=0;c8<26;c8++)
{
box[c8].prob = (box[c8].occur/sum);
cout<<box[c8].letter<<endl;
cout<<box[c8].occur<<endl;
cout<<box[c8].prob<<endl<<endl;
}
}

正确识别第一行句子中有90个字母,按照for循环第二行的结构打印出大写字母,并打印出出现的次数。它不断打印 0 作为概率。我做错了什么?

最佳答案

当您将 occur 除以总和时,您是将一个 int 除以一个 int,它会截断(在本例中为 0)。将结果分配给 double 并不重要。要解决此问题,请在除法之前强制转换为 double:

box[c8].prob = ((double)box[c8].occur)/sum;

关于c++ - 函数计算一个字母出现在句子中的概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2777241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com