问题:
编写一个 C 程序,提示用户输入以 ENTER 键(即 '\n')结尾的字符串,然后计算字符串中每个元音出现的总数。程序应使用以下准则: • 程序应
声明一个包含 5 个整数计数器的数组,即计数器。 •
使用循环,程序应将数组的每个成员初始化为 0。
• 然后检查字符串中的每个字符以查看它是否是元音,即“a”、“e”、“i”、“o”或“u”。在这种情况下,相应的计数器将递增。例如,如果读取“a”,则计数器 [0] 递增,如果读取“i”,则计数器 [2] 递增,依此类推。
• 输入的字符可以是小写或大写。
• 您的程序应使用循环来打印 5 个计数器的内容。
• 最后,您的程序应打印html" target="_blank">字符串中的元音总数。
结果应如下所示:请输入以 ENTER 键结尾的字符串:
"棕色的狐狸跳过了懒惰的狗"
counter[0] = 1
counter[1] = 4
counter[2] = 0
counter[3] = 4
counter[4] = 1
元音总数= 10
我的代码:
#include <stdio.h>
main(){
int counter[5];
int c, i;
for(i = 0; i < 5; i++)
counter[i] = 0;
printf("Please enter a string terminated by ENTER key:\n");
while((c = getchar()) != '\n')
{
if((counter[i] == 'a' || counter[i] == 'e' || counter[i] == 'i' || counter[i] ==
'o' || counter[i] == 'u') ||(counter[i] == 'A' || counter[i] == 'E' || counter[i] ==
'I' || counter[i] == 'O' || counter[i] == 'U'))
{
for(i = 0; i < 5; i++)
{
if(c == 'a' + i)
counter[i] = counter[i] + 1;
}
}
}
for(i = 0; i < 5; i++)
printf("counter[%d] = %d\n", i, counter[i]);
}
我的柜台怎么了?提前感谢。
我想这就是你想要做的:
printf("Please enter a string terminated by ENTER key:\n");
while((c = getchar()) != '\n')
{
if (c=='a' || c=='A')
counter[0]++;
else if (c=='e' || c=='E')
counter[1]++;
else if (c=='i' || c=='I')
counter[2]++;
else if (c=='o' || c=='O')
counter[3]++;
else if (c=='u' || c=='U')
counter[4]++;
}
for(i = 0; i < 5; i++)
printf("counter[%d] = %d\n", i, counter[i]);
或者使用开关:
printf("Please enter a string terminated by ENTER key:\n");
while((c = getchar()) != '\n')
{
switch(c)
{
case 'a':
case 'A': counter[0]++;
break;
case 'e':
case 'E': counter[1]++;
break;
case 'i':
case 'I': counter[2]++;
break;
case 'o':
case 'O': counter[3]++;
break;
case 'u':
case 'U': counter[4]++;
break;
default: break;
}
}
for(i = 0; i < 5; i++)
printf("counter[%d] = %d\n", i, counter[i]);
(只是为了好玩,我的回答)
int main(void)
{
int counter[5] = {0};
int *i, c;
printf("Please enter a string terminated by ENTER key:\n");
while(i = counter, (c = getchar()) != '\n')
{
switch(c)
{
default: continue;
case 'U'+' ': case 'U': ++ i;
case 'O'+' ': case 'O': ++ i;
case 'I'+' ': case 'I': ++ i;
case 'E'+' ': case 'E': ++ i;
case 'A'+' ': case 'A': ++*i;
}
}
for(c = 0; c < 5;
printf("counter[%d] = %d\n", c, counter[c++]));
return 0;
}
首先,您应该输入main的返回类型:int(例如:int main()),这并没有破坏您的代码,但它是C标准并从编译器发出警告。
C中的字符采用ASCII编码标准中的数值:http://upload.wikimedia.org/wikipedia/commons/1/1b/ASCII-Table-wide.svg,看看那里的值(例如“a”是97),更多信息请访问维基百科:http://en.wikipedia.org/wiki/ASCII
你在最后一个for循环中所做的就是将字符与a,b,c,d,e进行比较。
我建议你为这个角色做一个改变:
switch(c) {
case 'a':
case 'A':
counter[0]++;
break;
case 'e':
case 'E':
counter[1]++;
break;
case 'i':
case 'I':
counter[2]++;
break;
case 'o':
case 'O':
counter[3]++;
break;
case 'u':
case 'U':
counter[4]++;
break;
}
或者,您可以做五个if语句。
它现在应该可以正常工作。
本文向大家介绍C++计算每个字符出现的次数,包括了C++计算每个字符出现的次数的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C++计算每个字符出现的次数的实现代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助。
问题内容: 给定一个包含重复项的整数排序数组。查找数组中存在的每个唯一元素的频率。 频率定义为数组中任何元素出现的次数。 例如 : 问题答案: 我们首先讨论divide and conquer解决这个问题的基本策略。 每次调用我们的函数时,我们将数组分成两半,每次将我们的问题分成两半,导致最坏的时间复杂度为O(log(n))。 我们的数组实际上并没有被分成两半,但是我们保留了两个指针 start
问题内容: 如果我有英文文章或英文小说,并且想计算每个单词出现多少次,用Java编写的最快算法是什么? 有人说您可以使用Map ()完成此操作,但我想知道如何知道关键字是什么?每篇文章都有不同的词,您如何知道“关键”词,然后在其数量上加上一个? 问题答案: 这个数字“我是”只是一个字
本文向大家介绍Java程序检查字符串中每个元音的出现,包括了Java程序检查字符串中每个元音的出现的使用技巧和注意事项,需要的朋友参考一下 要再次计算字符串中元音的出现次数,请使用java的Map实用工具计算字符串中每个字符的出现次数。将每个元音放在Map中作为键,并将每个键的初始值设置为1,现在将每个字符与map的键进行比较如果字符与键匹配,则将其对应的值增加1。 示例 输出结果
问题内容: 我有一个数组如下 预期结果 尝试如下 问题答案: 无需使用jQuery即可完成此任务-此示例将构建一个对象,其中包含数组中每个不同元素的出现次数