无论输入如何,每个元音都会出现三次

时间:2014-02-26 08:08:53

标签: c

#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();
} 

我正在编译并得到错误的输出,无论用户输入帮助如何,每个元音都会出现三次。

3 个答案:

答案 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”进行比较!所以只计算循环中的元音数量,而不是特定字符的出现次数......