我是菜鸟,正在读这本书的第4章,我无法正确回答此作业。
下面列出了对我有意义但不起作用的代码。
这是作业:
编写一个程序,使您不喜欢的单词“消失”;也就是说,您使用cin读取单词,然后在cout上再次打印它们。如果您定义的单词中有一个, 写出BLEEP而不是那个词。从一个“不喜欢的词”开始,例如 不喜欢的字符串=“花椰菜”; 在这种情况下,再添加一些。
我们将非常感谢您的帮助,我甚至可能会向您发送一些cookie。
int main() {
vector<string> words;
for (string temp; cin >> temp; )
words.push_back(temp);
string disliked = "broccoli";
for (int i = 0; i < words.size(); ++i)
if (words[i] == disliked || disliked=="Bleep!")
cout << words[i] << "\n";
即使我输入了几个单词,我反讽的结果也只是“西兰花”而已。
答案 0 :(得分:4)
之所以只打印“西兰花”是因为这里的这些行:
type Mutation {
createClist(input: CreateClistInput! @spread): Clist @create
}
input CreateClistInput {
name: String!
description: String
starred: Boolean
user: CreateUserRelation!
ctags: CreateCtagRelation
}
input CreateUserRelation {
connect: ID!
}
input CreateCtagRelation {
create: [CreateCtagInput!]
connect: [ID!]
sync: [ID!]
}
input CreateCtagInput {
name: String!
}
这些行实质上意味着“如果单词等于西兰花,则打印出该单词”。支票的第二部分 if (words[i] == disliked || disliked=="Bleep!")
cout << words[i] << "\n";
始终为假(因为disliked == "Bleep!"
始终为“西兰花”),因此它不起作用。
我们可以解决以下问题:
disliked
在这里,逻辑是“如果不喜欢该单词,则打印出“ Bleep”,否则,打印出该单词。”
如果您还有其他问题,我们很乐意为您解答,任何cookie都将不胜感激! :)
答案 1 :(得分:1)
贾斯汀说的是真的。调试器可以通过逐行跟踪发生的事情(您的程序足够执行此操作)来向您确切显示发生的事情。
但是我会回答。问题出在这里
if (words[i] == disliked || disliked=="Bleep!")
您测试该单词是否为不受欢迎的单词,然后显示出来。是的,只有西兰花。顺便说一句,您不完全按照练习的话说,因为当您不喜欢这个词时,您应该发出哔哔声,如果不喜欢,您应该发出单词。 (根据我的理解)。
希望有帮助。