杭电ACM2027 网址 我的哪错了?? http://acm.hdu.edu.cn/showproblem.php?pid=2027
#include<stdio.h>#include<string.h>voidmain(){inta,e,i,o,u,n,j,x;charstr[100];scanf("...
#include<stdio.h>
#include<string.h>
void main()
{
int a,e,i,o,u,n,j,x;
char str[100];
scanf("%d",&n);
x=0;
while(1)
{
x++;
a=e=i=o=u=0;
getchar();
gets(str);
for(j=0;j<strlen(str);j++)
{
if(str[j]=='a')a++;
if(str[j]=='e')e++;
if(str[j]=='i')i++;
if(str[j]=='o')o++;
if(str[j]=='u')u++;
}
printf("a:%d\n",a);
printf("e:%d\n",e);
printf("i:%d\n",i);
printf("o:%d\n",o);
printf("u:%d\n",u);
if(x!=n)printf("\n");
if(x==n)break;
}
}
把gether()移到外面就过了?? 展开
#include<string.h>
void main()
{
int a,e,i,o,u,n,j,x;
char str[100];
scanf("%d",&n);
x=0;
while(1)
{
x++;
a=e=i=o=u=0;
getchar();
gets(str);
for(j=0;j<strlen(str);j++)
{
if(str[j]=='a')a++;
if(str[j]=='e')e++;
if(str[j]=='i')i++;
if(str[j]=='o')o++;
if(str[j]=='u')u++;
}
printf("a:%d\n",a);
printf("e:%d\n",e);
printf("i:%d\n",i);
printf("o:%d\n",o);
printf("u:%d\n",u);
if(x!=n)printf("\n");
if(x==n)break;
}
}
把gether()移到外面就过了?? 展开
2个回答
展开全部
【代码1——】
#include <ctype.h>
#include <stdio.h>
int main()
{
int n;
int y[5];
char c;
scanf("%d%*c", &n);
while (n--)
{
y[0] = y[1] = y[2] = y[3] = y[4] = 0;
while ((c = getchar()) != '\n')
{
switch (tolower(c))
{
case 'a':
y[0]++;
break;
case 'e':
y[1]++;
break;
case 'i':
y[2]++;
break;
case 'o':
y[3]++;
break;
case 'u':
y[4]++;
break;
default :
break;
}
}
printf("a:%d\n", y[0]);
printf("e:%d\n", y[1]);
printf("i:%d\n", y[2]);
printf("o:%d\n", y[3]);
printf("u:%d\n", y[4]);
if (n) putchar('\n');
}
return 0;
}
【注】
也许字母会有大小写之分,记得用tolower()或toupper()换成统一的格式就可以了。
tolower
语法:
#include <ctype.h> int tolower( int ch );
功能:函数字符ch的小写形式。
toupper
语法:
#include <ctype.h> int toupper( int ch );
功能:函数字符ch的大写形式。
【代码2-—— 哈希实现】
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<time.h>
int T , sign[200] , hash[5]={'a' , 'e' , 'i' , 'o' , 'u'};
char str[105];
int main()
{
scanf( "%d%*" ,&T );
while( T-- )
{
memset( sign , 0 ,sizeof(sign) );
gets( str );
int len = strlen ( str );
for( int i=0 ; i<len ; ++i )
sign[str[i]]++;
for( int i=0 ;i< 5;++i )
printf( "%c:%d\n" ,hash[i],sign[hash[i]]);
if( T > 0)
puts( "" );
}
return 0;
}
【代码3——】
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int i,t,n=1;
char str[100];
char tabstr[]="aeiou";
int tab[300];
scanf("%d%*c",&t);
while(t--)
{
gets(str);
memset(tab,0,sizeof(tab));
for(i=0;str[i];i++)
tab[str[i]]++;
if(n++!=1) putchar('\n');
for(i=0;i<5;i++)
printf("%c:%d\n",tabstr[i],tab[tabstr[i]]);
}
//system("pause");
return 0;
}
#include <ctype.h>
#include <stdio.h>
int main()
{
int n;
int y[5];
char c;
scanf("%d%*c", &n);
while (n--)
{
y[0] = y[1] = y[2] = y[3] = y[4] = 0;
while ((c = getchar()) != '\n')
{
switch (tolower(c))
{
case 'a':
y[0]++;
break;
case 'e':
y[1]++;
break;
case 'i':
y[2]++;
break;
case 'o':
y[3]++;
break;
case 'u':
y[4]++;
break;
default :
break;
}
}
printf("a:%d\n", y[0]);
printf("e:%d\n", y[1]);
printf("i:%d\n", y[2]);
printf("o:%d\n", y[3]);
printf("u:%d\n", y[4]);
if (n) putchar('\n');
}
return 0;
}
【注】
也许字母会有大小写之分,记得用tolower()或toupper()换成统一的格式就可以了。
tolower
语法:
#include <ctype.h> int tolower( int ch );
功能:函数字符ch的小写形式。
toupper
语法:
#include <ctype.h> int toupper( int ch );
功能:函数字符ch的大写形式。
【代码2-—— 哈希实现】
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<time.h>
int T , sign[200] , hash[5]={'a' , 'e' , 'i' , 'o' , 'u'};
char str[105];
int main()
{
scanf( "%d%*" ,&T );
while( T-- )
{
memset( sign , 0 ,sizeof(sign) );
gets( str );
int len = strlen ( str );
for( int i=0 ; i<len ; ++i )
sign[str[i]]++;
for( int i=0 ;i< 5;++i )
printf( "%c:%d\n" ,hash[i],sign[hash[i]]);
if( T > 0)
puts( "" );
}
return 0;
}
【代码3——】
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int i,t,n=1;
char str[100];
char tabstr[]="aeiou";
int tab[300];
scanf("%d%*c",&t);
while(t--)
{
gets(str);
memset(tab,0,sizeof(tab));
for(i=0;str[i];i++)
tab[str[i]]++;
if(n++!=1) putchar('\n');
for(i=0;i<5;i++)
printf("%c:%d\n",tabstr[i],tab[tabstr[i]]);
}
//system("pause");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询