作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做 Accelerated C++ 练习 3-3,但我终究无法弄清楚为什么我的程序没有输出。我什至尝试一路添加测试 cout,但它没有给我任何东西。为什么即使在主 for 循环之外添加 cout 语句,它也不会产生任何输出?
#include <iostream>
#include <string>
#include <algorithm>
#include <iomanip>
#include <vector>
using std::cout; using std::cin;
using std::endl; using std::vector;
using std::sort; using std::string;
int main() {
int count = 0;
string input;
vector<string> words;
typedef vector<string>::size_type vec_sz;
vec_sz size = words.size();
cout << "Sentence: ";
while(cin >> input) {
words.push_back(input);
}
for(int i = 0; i < size - 1; i++) {
for(int j = 0; j < size - 1; j++) {
if(words[i] == words[j]) {
++count;
}
}
cout << "The word " << words[i] << " appears " << count << " times." << endl;
}
return 0;
}
最佳答案
您可以检查 size == 0
。因此,for
循环中没有任何迭代。
要修复它,您需要将行 vec_sz size = words.size();
降低几行。
试试这个顺序:
cout << "Sentence: ";
while(cin >> input) {
words.push_back(input);
}
vec_sz size = words.size();
您的 for
循环中的逻辑也存在错误。您需要每次重置 count
(只需在内部循环之前添加 count = 0;
以获得正确的结果)。
你可以在这里查看它是如何工作的:http://ideone.com/T2cPcH (count
初始化错误)
关于c++ - 不明白为什么 C++ 程序没有输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42639995/
我是一名优秀的程序员,十分优秀!