
急急急!!C语言算法问题!!求答案!!在线等~~~分全投了···别嫌少啊~~求指教~
大酬宾活动的第三天,店里突然来了一个老外。还是高中生的小娥在开店。可怜的小娥被老外流畅的外语给吓蒙了。老外没办法,只好一个字母一个字母地把订单念给小娥。吓蒙的小娥只记得有...
大酬宾活动的第三天,店里突然来了一个老外。还是高中生的小娥在开店。可怜的小娥被老外流畅的外语给吓蒙了。老外没办法,只好一个字母一个字母地把订单念给小娥。吓蒙的小娥只记得有几个元音字母了(aeiou),不过很不幸的是她把H也当作了A,Y当作了I.
Input
第一行输入一个整数n,表示老外说了多少句话。
然后是n行,每一行是老外说的外语。
Output
对于老外说的每句话,请统计出小娥记得的各元音字母的个数(包含记错的),每个元音1行,格式见例子
Sample Input
2
Hello.
How are you!
Sample Output
a:1
e:1
i:0
o:1
u:0
a:2
e:1
i:1
o:2
u:1
Hint
一句话不超过50个字符 展开
Input
第一行输入一个整数n,表示老外说了多少句话。
然后是n行,每一行是老外说的外语。
Output
对于老外说的每句话,请统计出小娥记得的各元音字母的个数(包含记错的),每个元音1行,格式见例子
Sample Input
2
Hello.
How are you!
Sample Output
a:1
e:1
i:0
o:1
u:0
a:2
e:1
i:1
o:2
u:1
Hint
一句话不超过50个字符 展开
2个回答
2012-01-03
展开全部
#include <iostream>
#include <string>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#include <vector>
using namespace std;
const int maxn = 100;
char str[maxn];
int t, ans[5];
int main() {
scanf("%d", &t);
gets(str);
while(t--) {
gets(str);
memset(ans, 0, sizeof(ans));
for(int i = 0; str[i]; i++) {
if(str[i] == 'a' || str[i] == 'A' || str[i] == 'h' || str[i] == 'H') {
ans[0]++;
}
if(str[i] == 'e' || str[i] == 'E') {
ans[1]++;
}
if(str[i] == 'i' || str[i] == 'I' || str[i] == 'y' || str[i] == 'Y') {
ans[2]++;
}
if(str[i] == 'o' || str[i] == 'O') {
ans[3]++;
}
if(str[i] == 'u' || str[i] == 'U') {
ans[4]++;
}
}
printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n", ans[0], ans[1], ans[2], ans[3], ans[4]);
}
return 0;
}
#include <string>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#include <vector>
using namespace std;
const int maxn = 100;
char str[maxn];
int t, ans[5];
int main() {
scanf("%d", &t);
gets(str);
while(t--) {
gets(str);
memset(ans, 0, sizeof(ans));
for(int i = 0; str[i]; i++) {
if(str[i] == 'a' || str[i] == 'A' || str[i] == 'h' || str[i] == 'H') {
ans[0]++;
}
if(str[i] == 'e' || str[i] == 'E') {
ans[1]++;
}
if(str[i] == 'i' || str[i] == 'I' || str[i] == 'y' || str[i] == 'Y') {
ans[2]++;
}
if(str[i] == 'o' || str[i] == 'O') {
ans[3]++;
}
if(str[i] == 'u' || str[i] == 'U') {
ans[4]++;
}
}
printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n", ans[0], ans[1], ans[2], ans[3], ans[4]);
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
void f(int* a,char* s)
{
while(*s)
{
switch(*s)
{
case 'h':
case 'H':
case 'A':
case 'a': a[0]++;break;
case 'E':
case 'e': a[1]++;break;
case 'Y':
case 'y':
case 'I':
case 'i': a[2]++;break;
case 'O':
case 'o': a[3]++;break;
case 'U':
case 'u': a[4]++;break;
}
s++;
}
}
int main()
{
char s[200];
int a[5];
int n,i,j;
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
for(j=0;j<5;j++)
a[j]=0;
gets(s);
f(a,s);
printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n",a[0],a[1],a[2],a[3],a[4]);
}
return 0;
}
void f(int* a,char* s)
{
while(*s)
{
switch(*s)
{
case 'h':
case 'H':
case 'A':
case 'a': a[0]++;break;
case 'E':
case 'e': a[1]++;break;
case 'Y':
case 'y':
case 'I':
case 'i': a[2]++;break;
case 'O':
case 'o': a[3]++;break;
case 'U':
case 'u': a[4]++;break;
}
s++;
}
}
int main()
{
char s[200];
int a[5];
int n,i,j;
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
for(j=0;j<5;j++)
a[j]=0;
gets(s);
f(a,s);
printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n",a[0],a[1],a[2],a[3],a[4]);
}
return 0;
}
更多追问追答
追问
不行额···运行出现好多错误提示···
我用的Ch IDE
跪求答案~~~
追答
不可能有问题的,这个有人都提交通过了
我这里也运行正常
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询