#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int main()
{
char a[100];
int c, e=0;
char d;
printf("enter a text of your choice\n");
scanf("%s",a);
printf("enter the vowel you want to know its occurence\n");
fflush(stdin);
scanf("%c",&d);
for(c=0;c<strlen(a);c++)
{
if(a[c]=='a'||a[c]=='o'||a[c]=='e'||a[c]=='u'||a[c]=='i')
e++;
}
printf("in the text ");
for(c=0;c<strlen(a);c++)
printf("%c",a[c]);
printf("\nthe vowel%c",d);
printf(" appears %d",e);
printf(" times.\n");
getch();
}
我正在编译并得到错误的输出,无论用户输入帮助如何,每个元音都会出现三次。
答案 0 :(得分:3)
您在变量d
中读取元音但从未使用它,因此您将获得输入文本中所有元音的计数,前提是代码中没有其他错误。
答案 1 :(得分:3)
如果您想匹配输入的元音,请更改
if(a[c]=='a'||a[c]=='o'||a[c]=='e'||a[c]=='u'||a[c]=='i')
到
if(a[c]==d)
答案 2 :(得分:2)
您不会将文字“a”中的字符与输入的字符“d”进行比较!所以只计算循环中的元音数量,而不是特定字符的出现次数......