所以,我一直在研究一个简单的程序,当给出一个只由r和b组成的字母数组时,它将遍历该数组并计算每个字母的数量。
但是,程序运行正常,但输出0,0。
请帮助!
这是我的代码:
#include <iostream>
#include <vector>
using namespace std;
int main() {
int red = 0;
int blue = 0;
vector <int> necklace;
int beads;
while (cin >> beads){
necklace.push_back(beads);
}
for(beads = 0; beads < necklace.size(); beads++){
if( beads == 'r' ){
red++;
}
else if( beads == 'b'){
blue++;
}
}
cout << red << endl << blue << endl ;
}
答案 0 :(得分:0)
在你的程序中,bead是一个整数。 您正在为项链向量添加整数。所以它不会进入你的if条件,因为珠子应该是&#39; r&#39;或者&#39; b&#39;但这是一些数字。
答案 1 :(得分:0)
你必须改变一下你的程序。首先将int
更改为char
,同时更改从输入中获取符号/字符的方式(循环)。第二,你必须修复检查向量中是否有'r'或'b'。你必须使用表运算符'[]'。
这是您的程序的固定版本:
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
int main()
{
int red = 0, blue = 0;
vector <char> necklace;
char beads;
string line;
getline(cin, line);
istringstream iss(line);
while (iss >> beads)
{
necklace.push_back(beads);
}
for(int i = 0; i < necklace.size(); i++)
{
beads = necklace[i];
if (beads == 'r' )
{
red++;
}
else if(beads == 'b')
{
blue++;
}
}
cout << red << endl << blue << endl ;
}