2.编写一个程序,计算一行文字中的元音个数。
#include<stdio.h> void main() { int i=0; char text[20]; printf("请输入一行文字,最大为20"); scanf("%s",text); if(text=getchar()=="a,e,i,o,u"||"A,E,I,O,U") { i=i+1; } printf("元音个数为",i);
}
请问一下这个题哪块有错误呀?怎么弄也不成?请高手指教,谢谢
----------------解决方案--------------------------------------------------------
//搞定了,能运行
//编写一个程序,计算一行文字中的元音个数。
#include<stdio.h>
void main()
{ int i,count=0;
char text[20];
printf("请输入一行文字,最大为20:\n");
scanf("%s",text);
for(i=0;text[i]!='\0';i++)
if(text[i]=='a') count++;
else if(text[i]=='e') count++;
else if(text[i]=='i') count++;
else if(text[i]=='o') count++;
else if(text[i]=='u') count++;
else if(text[i]=='A') count++;
else if(text[i]=='E') count++;
else if(text[i]=='O') count++;
else if(text[i]=='U') count++;
printf("元音个数为%d\n",count);
}
[此贴子已经被作者于2005-3-30 15:36:31编辑过]
----------------解决方案--------------------------------------------------------
太帅了,谢谢高手
在for下面的if..else不用加{}大括号吗?
还有\0是什么意思,空格吗?
----------------解决方案--------------------------------------------------------
\0 是字符数组的结束标志, if..else把它看成一个 ;的语句吧
[此贴子已经被作者于2005-3-30 16:05:50编辑过]
----------------解决方案--------------------------------------------------------
#include<stdio.h> void main() { int i, counter; char text[20]; printf("请输入一行文字,最大为20\n"); scanf("%s",text); for(i = 0, counter = 0; i < 20; i++) { switch(text[i]) { case 'a': case 'e': case 'i': case 'o': case 'u': case 'A': case 'E': case 'I': case 'O': case 'U': counter++; break; default: break;
}
} printf("元音个数为 %d\n",counter);
}
----------------解决方案--------------------------------------------------------