杭电acm2027

来源:百度知道 编辑:UC知道 时间:2024/06/07 20:57:53
这是我写的代码,开始输入一个整数就会输出,不知道为什么,高手帮忙看看,告诉我哪里错了
#include<iostream>
#include<string>
using namespace std;
int main()
{
int n;
while(cin>>n)
{

while(n){
int flag=false;
int n1=0,n2=0,n3=0,n4=0,n5=0;
char a[100];
cin.getline(a,100);
for(int i=0;i<strlen(a);i++){
if(a[i]=='a')
n1++;
if(a[i]=='e')
n2++;
if(a[i]=='i')
n3++;
if(a[i]=='o')
n4++;
if(a[i]=='u')
n5++;
}
cout<<'a'<<':'<<n1<<endl;
cout<<'e'<<':'<<n2<<endl;
cout<<'i'<<':'<<n3<<endl;
cout<<'o'<<':'<<n4<<endl;
cout<<'u'<<':'<<n5<<endl;
cou

你的代码稍加修改下
while(cin>>n)
{
getchar();//这里加一句就可以了,因为上面还有个换行符没有读。
while(n){
//你的代码还要注意每组测试数据间还有空行

我的AC代码
#include <iostream>
#include <string>
#include <memory>
using namespace std;
int main(){
string str;
char c[5]={'a','e','i','o','u'};
int n,len,a[5],i,j,flag(0);
cin>>n;
getline(cin,str);
while(n--){
memset(a,0,sizeof(a));
getline(cin,str);
len=str.length();
for(i=0;i<len;i++){
for(j=0;j<5;j++){
if(c[j]==str[i])a[j]++;
}
}
if(flag)cout<<endl;
for(j=0;j<5;j++){
cout<<c[j]<<":"<<a[j]<<endl;
}
flag=1;
}
return 0;
}

这是我的代码你看一下啊。AC过了的。