永发信息网

c++的一道题错在哪?谢了

答案:4  悬赏:40  手机版
解决时间 2021-05-11 04:52
  • 提问者网友:几叶到寒
  • 2021-05-10 04:28
#include<iostream.h>
void main()
{char ch;
int ai(0),ei(0),ii(0),oi(0),ui(0),sum(0);
cout<<"请输入一串字母:";cin>>ch;
while(ch!='#')
{ switch(ch)
{case'a':ai++;break;
case'e':ei++;break;
case'i':ii++;break;
case'o':oi++;break;
case'u':ui++;break;
}
}
sum=ai+ei+ii+oi+ui;
cout<<"ai="<<ai<<endl;
cout<<"ei="<<ei<<endl;
cout<<"ii="<<ii<<endl;
cout<<"oi="<<oi<<endl;
cout<<"ui="<<ui<<endl;
cout<<"sum="<<sum<<endl;
}
最佳答案
  • 五星知识达人网友:蓝房子
  • 2021-05-10 04:45

cin >> ch;没有放在循环内,这样即使输入一串字符,程序也只会读取第一个字符。

#include <iostream>


using namespace std;


int main()
{
char ch;
int ai(0), ei(0), ii(0), oi(0), ui(0), sum(0);
cout << "请输入一串字母:";
while(cin >> ch , ch != '#')
{
switch(ch)
{
case 'a':
ai++;
break;
case 'e':
ei++;
break;
case 'i':
ii++;
break;
case 'o':
oi++;
break;
case 'u':
ui++;
break;
}
}
sum = ai + ei + ii + oi + ui;
cout << "ai=" << ai << endl;
cout << "ei=" << ei << endl;
cout << "ii=" << ii << endl;
cout << "oi=" << oi << endl;
cout << "ui=" << ui << endl;
cout << "sum=" << sum << endl;
return 0;
}

运行截图:

全部回答
  • 1楼网友:第四晚心情
  • 2021-05-10 07:42

while(ch!='#') { switch(ch) {case'a':ai++;break; case'e':ei++;break; case'i':ii++;break; case'o':oi++;break; case'u':ui++;break; }

cin>>ch; }

不然会一直死在里面的,处理一个之后再重新读一个,直到为'#,'呵呵~小心

  • 2楼网友:老鼠爱大米
  • 2021-05-10 07:08
case后加个空格,最后要有:“return;”。
  • 3楼网友:猎心人
  • 2021-05-10 06:03
应该定义个字符数组来存放 输入的字符 然后遍历这个数组
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯