这么简单个问题聊出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"); //确保每个中间空一行,最后一个结果不空行
}
}
