统计元音

统计元音

时间: 1ms        内存:64M

描述:

统计每个元音字母在字符串中出现的次数。

输入:

输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串。

输出:

对于每个测试实例输出5行,格式如下:
a:num1
e:num2
i:num3
o:num4
u:num5
多个测试实例之间由一个空行隔开。

请特别注意:最后一块输出后面没有空行:)

示例输入:

2
aeiou
my name is ignatius

示例输出:

a:1
e:1
i:1
o:1
u:1

a:2
e:1
i:3
o:0
u:1

提示:

参考答案(内存最优[752]):

#include<stdio.h>
#include<string.h>
int main()
{
    char c[101];
    int j,a,e,i,o,u,n,k;
    scanf("%d",&n);
    getchar();
    for(j=0; j<n; j++)
    {
        gets(c);
        a=0;
        e=0;
        i=0;
        o=0;
        u=0;
        for(k=0; k<strlen(c);k++)
        {
            if(c[k]=='a')
                a++;
            if(c[k]=='e')
                e++;
            if(c[k]=='i')
                i++;
            if(c[k]=='o')
                o++;
            if(c[k]=='u')
                u++;
        }
        if(j==n-1)
            printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d",a,e,i,o,u);
        else
            printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n\n",a,e,i,o,u);
    }
    return 0;
}

参考答案(时间最优[0]):

#include<stdio.h>
#include<string.h>
 int main()
 {  
	 char a[100]; 
	 int i,l,n,num[5];  
	 scanf("%d",&n);  
	 getchar();   
	 while(n--)   
	 {     
		 memset(num,0,sizeof(num)); 
		 gets(a);     
		 l=strlen(a);
		 for(i=0;i<l;i++)  
		 {          
			 if(a[i]=='a') 
				 num[0]++;  
			 else         
				 if(a[i]=='e')  
					 num[1]++; 
				 else        
					 if(a[i]=='i')   
						 num[2]++;     
					 else           
						 if(a[i]=='o')  
							 num[3]++;    
						 else             
							 if(a[i]=='u')  
								 num[4]++;   
		 }         
		 printf("a:%d\n",num[0]);  
		 printf("e:%d\n",num[1]);  
		 printf("i:%d\n",num[2]);  
		 printf("o:%d\n",num[3]);  
		 printf("u:%d\n",num[4]);  
		 if(n!=0)      
			 printf("\n");
	 }    return 0; 
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注