我正在制作一个应该计算元音的程序。我创建了一个 char 数组,并通过 if 语句检查它的每个元素:
for( i=0 ; sent[i]!='\0' ; i++)
{
if (sent[i] = ='A'||'a'||'E'||'e'||'I'||'i'||'O'||'o'||'u')
{ vow++;
}
}
现在,当我在控制台上输入“我的名字是 Arsal”时,它会输出“16 个元音”,这实际上是上面句子中所有字母字符以及空格的数量。 当我删除“OR(s)”时
if (sent[i] = ='A' /*||'a'||'E'||'e'||'I'||'i'||'O'||'o'||'u' */)
{ vow++;
}
程序在上面的句子中给出了正确的输出“1”。
这是完整的程序:
#include<stdio.h>
#include<conio.h>
#include<string.h>
main()
{
int vow=0;
char sent[100];
printf("Enter sentence ; \n");
gets(sent);
printf("\n");
int i,j;
for(i=0 ; sent[i]!='\0';i++)
{
if (sent[i] == 'A'||'a'||'E' || 'e' || 'O' ||'o'||'I'||'i' ||'U' ||'u')
{
vow++;
}
}
printf("\n No.of vowels = %d",vow);
getch();
}
请告诉我原因。
最佳答案
您的“或”格式不正确...
而不是
if (sent[i] == 'A' || 'a' || 'e'
.... 等等
它需要是:
if ( 发送[i] == 'A' || 发送[i] == 'a' || 发送[i] == 'e'
... 等等
关于c - 为什么if语句不考虑 "OR(s)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33716927/