我正试图写一个C程序来计算元音、键击和字母字符的数量。击键计数器正在工作,但是元音计数器总是关闭一个元音。阿尔法计数器坏了。
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
int keystrokes = 0; //Number of keystrokes.
int letters = 0; //Number of total letters.
int vowels = 0; //Number of vowels.
int i = 0;
char sentence[0]; //Chararacter array specified to users input.
while((sentence[i] = getchar()) != '\n')
{
if(sentence[i] == 'a' || sentence[i] == 'e' || sentence[i] == 'i' || sentence[i] == 'o' ||sentence[i] =='u'|| sentence[i] == 'A' || sentence[i] == 'E' || sentence[i] == 'I' || sentence[i] == 'O' ||sentence[i] == 'U' )
{
++keystrokes;
++letters;
++vowels;
}
else
{
if (isalpha(sentence[i]) == 1) // if character is true
{
++keystrokes;
++letters;
}
else
{
++keystrokes;
i++;
}
}
}
printf("SAMPLE OUTPUT, for EACH sentence above:\n");
printf("Keystrokes %d \n", keystrokes);
printf("Alpha Characters %d \n", letters);
printf("Vowels %d \n", vowels);
return 0;
}
我同意Alan AU关于将句子
替换为get_char
的观点。我还将(isalpha(句子[i])==1)
更改为(isalpha(句子[i]))
。
我承认我对编程还是新手,但是在我进行更改之前,您的代码没有正确地增加字母。
你的问题是你有由内存损坏引起的不确定行为。
char sentence[0];
声明了一个0字符数组。只需去掉数组和i
索引。也就是说,将char语句[0]
更改为类似于charcurrent_char
,然后将语句[i]
的所有实例替换为current_char
。
你有很多问题。通过说< code>char sentence[0],您实际上是说没有字节的内存来存储输入。访问< code>sentence[i]将会“越界”并覆盖内存的其他部分,导致未定义的行为。
首先,将字符句子[0]更改为字符句子[
100]。
然后仔细查看增加计数器的位置,即 if/else 流在程序中的样子。举个例子:目前,当你有一个元音时,没有达到对isalpha()
的检查,也没有达到i
.
我已经开始了一个计算元音的程序,似乎毫无进展。我需要从字符串中计数元音,然后显示元音。我需要通过在变量中存储出现次数来做到这一点。像这样: 当前代码(没有那么多): 我自己尝试了很多方法,但似乎都没有成功。
我一直在环顾该网站,但找不到问题的答案。我需要能够浏览给定数量的字符串并计算单词中的元音数量。如果元音的数量与之前输入的数字匹配,则打印 YES。我尝试使用字符串数组,然后遍历数组中的每个单词以查找元音,为找到的每个元音增加元音检查(vocheck),然后检查vocheck是否等于适当的数字。但是,当我检查 vocheck for 循环是否有效时,它只是将 vocheck 保持为 0。怎么了? 这
我做了一个程序来计算输入字符串中元音和辅音的数量: 当“y”本身是辅音时,它应该是元音。我在哪里陈述?
Imma java新手,所以我试着学东西。我创建了一个布尔方法,这是一个小的骰子游戏。我需要这个方法是从main方法调用,并继续玩,而返回值是真的(游戏是赢的),但停止执行,如果返回值是假的。我也需要多少次球员赢了。所以我创造了这样的东西: 初始化为私有静态int
本文向大家介绍计算C ++中的元音排列,包括了计算C ++中的元音排列的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个数字n,我们必须计算使用这些规则可以形成多少个长度为n的字符串-每个字符都是小写的元音每个元音'a'只能跟一个'e'。每个元音“ e”只能跟一个“ a”或“ i”。每个元音“ i”都不能跟在另一个“ i”之后。每个元音“ o”只能跟一个“ i”或“ u”。每个元音“ u”只
我正在尝试匹配从服务器下载的文件的md5sum。只有当总和匹配时,处理才会继续。 上面的代码并没有每次为某些文件正确提供md5sum。 当我去控制台检查md5sum时 下载文件的vimdiff未提供任何差异。。下载后的文件是正确的。 我无法在上述代码中看到问题。 我正在尝试更改缓冲区大小。但没有运气,所以我猜这不是因为缓冲区大小等。 问候Dheeraj Joshi