这么简单个问题聊出3篇了也没个结果。楼主也是,你把原题描述发上来,光看代码怎么知道你哪里不符合要求。
重剑无锋,大巧不工
#include<stdio.h> #include<string.h> int main() { int n,t,a,e,i,o,u,m; char p[500]; scanf("%d\n", &n); while(n--) { gets(p); t=strlen(p); a=e=i=o=u=0; for(m=0;m<t;m++) { if(p[m]=='a') a++; if(p[m]=='e') e++; if(p[m]=='i') i++; if(p[m]=='o') o++; if(p[m]=='u') u++; } printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n",a,e,i,o,u); if(n > 0) printf("\n"); } return 0; }
#include<stdio.h> int main() { char s[128], c[128] = {0}; int n, i; for(scanf("%d\n", &n); n--;) { c['a'] = c['e'] = c['i'] = c['o'] = c['u'] = 0; for(gets(s), i = 0; s[i]; c[s[i++]]++); printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n", c['a'], c['e'], c['i'], c['o'], c['u']); if(n) puts(""); } return 0; }
#include <stdio.h> void main() { int i,j,n,b[5]; char a[100],*p="aeiou"; for(n=0,scanf("%d",&n);n;n--) { setbuf(stdin, NULL); //清空键盘缓冲区 for(i=0;i<5;i++)b[i]=0; gets(a); for(i=0;a[i];i++) { for(j=0;p[j];j++) if(a[i]==p[j]||a[i]==p[j]-32)b[j]++; //大小写都判断 } for(i=0;p[i];i++)printf("%c:%d\n",p[i],b[i]); if(n>1)printf("\n"); //确保每个中间空一行,最后一个结果不空行 } }