以下是一个练习的说明,我必须解决cs50 pset2可读性问题(从站点粘贴副本):
这些不是完整的说明,只是我有问题的部分。
我知道如何计算课文中的字母数,但我不知道如何计算单词和句子。我试着用谷歌搜索它,并使用其他外部资源,但弹出的只是问题的答案,坦率地说,这感觉像作弊。这是我的代码:
#include<stdio.h>
#include<cs50.h>
#include<string.h>
#include<stdbool.h>
#include<ctype.h>
int main (void)
{
int letters = 0;
string text = get_string("Text: ");
int words = 0;
for (int i = 0; i < strlen(text);i++)
{
if(isalpha(text[i]) != 0)
{
letters++;
}
}
printf("Letters: %i\n", letters);
for (int i = 0; i < strlen(text);i++)
{
if (isspace(text[i]) != 0)
{
if(isalpha (text[i] + 1) != 0)
{
words++;
}
}
}
printf("Words: %i\n", words);
}
此代码计算正确的字母数,但始终键入单词:0。我还没有完成句子部分。能给我一些帮助吗?如果你给我看答案,你能解释为什么会是这个答案吗?
for (int i = 0; i < strlen(text);i++)
{
if (isspace(text[i]) != 0)
{
if(isalpha (text[i] + 1) != 0)
{
words++;
}
}
}
这里有一些错误的东西。你需要做的是意识到这个程序可以处于两种状态之一。要么你正在读一个单词,要么没有。
bool reading_word = false; // Flag
int words = 0;
for(int i=0; i<strlen(text); i++) {
if(isspace(text[i]) {
reading_word = false;
}
else if(isalpha(text[i])) {
if(!reading_word) {
reading_word = true;
words++;
}
}
}
另外,不要写if(isspace(text[i])!=0)
。它返回一个布尔值,所以它基本上是用来读取“如果文本[i]是一个空格”,所以只要写if(isspace(文本[i]))
另外,在您的代码中,isalpha(text[i]1)
是完全错误的,没有任何意义。既然这是家庭作业,我就让你来找出原因。
对于句子,你可以使用这样的函数:
int isdelim(char c)
{
return c == '.' || c == '!' || c == '?';
}
然后以类似于循环计算单词的方式使用它。
我一直在试图弄清楚如何计算句子每个单词中的元音和字符。例如 在句子 < code>hello : 5个字符,2个元音 <代码>有:5个字符,2个元音 。我见过完整句子做同样事情的代码。但不是一个字一个字地。 下面是我一直在做的编码 输入将全部。我很难弄清楚这一点。 在运行代码时,我没有得到元音计数。我能把句子分开。但元音计数没有发生。
问题内容: 我正在编写一个非常基本的Java程序,该程序可以计算句子中每个单词的频率,到目前为止,我设法做到了这一点 我已经提取了每个字符串并将其存储在数组中,现在的问题实际上是如何计算每个“单词”重复出现的次数以及如何显示以使重复的单词不会多次显示,您能帮我这个忙吗?一个? 问题答案: 使用以单词为键的地图并将其计为值,像这样 如果不允许使用java.util,则可以使用一些排序算法对arr进行
给定一个句子,我希望能够数出每个单词中有多少个元音。 示例输入: 示例输出: 我最初的想法是有2个同时循环。第一个循环直到满足EOF以结束程序,第二个(嵌套的)同时循环将运行直到满足空格 (" ") ,同时还对当前单词中的元音求和。一旦遇到空格,它将打印出元音的当前值,第二个同时循环将结束并重新开始(元音计数器重置回0)。 这是我为此编写的代码: 然而,这导致语法错误,我不能找出我的错误。 第6行
我想计算一下给定句子中出现了多少个单词。我使用的是C编程语言。它不能计算最后一个字。在给定的字符串中,它计算每个单词发生的次数。如果有像这样的句子,那么程序应该算。但在我的情况下,它不算作。而不是计算,然后: 我的代码:
问题内容: 我想使用方法来计算一个句子中的单词数。我写了这段代码,但我不太确定为什么它不起作用。无论我写什么,我都只会收到一个单词的数。如果您能告诉我如何修正我写的内容,而不是给我一个完全不同的主意,那就更好了: 问题答案: 您需要阅读整行。代替使用。
我想计算一个句子中重复单词或重复单词的总数。这里我可以打印单词,但不能计算这些单词。 我期望输出:- 给定字符串中的重复单词:大黑色 给定字符串中的重复单词总数:2 输出如下: 给定字符串中的重复单词:大黑色 给定字符串中的重复单词总数:10 总计数显示为10,而不是2。