gpt4 book ai didi

c++ - 为什么我的C++代码不接受输入?我的代码有什么问题?

转载 作者:行者123 更新时间:2023-12-01 14:42:12 25 4
gpt4 key购买 nike

我目前正在学习C++,并且是编程的新手。我遇到一个问题并尝试解决,但最终结果不理想。然后在python导师的帮助下,我尝试可视化了我的代码的执行情况,即使在运行 cin >> q 后,执行下一条语句时,它也没有输入并显示错误,而在我尝试使用 q
请,任何人都可以告诉问题出在哪里以及导致此类错误发生的原因吗?
Click here to see the problem I tried solving
My C++ Code

#include <iostream>
#include<vector>
using namespace std;

int main() {
int q,t1,t2;
vector<int> v;
cin>>q;
while(q--){
if(cin >> t1>>t2){
if(t1==0)
{
v.push_back(t2);
}
else if(t1==1)
{
cout << v[t2] <<"\n";
}
}
else if(cin >> t1){
if(t1==2)
v.pop_back();
}

}
return 0;
}
Error I got while visualizing my code in python tutor

最佳答案

当您说cin不起作用时,我不知道您的意思。您的代码中没有任何东西会使它不起作用。
但是,您的代码有错误。这段代码

    if(cin >> t1>>t2){
if(t1==0)
{
v.push_back(t2);
}
else if(t1==1)
{
cout << v[t2] <<"\n";
}
}
else if(cin >> t1){
if(t1==2)
v.pop_back();
}
假定您可以尝试从一行中读取两个数字,如果不行,请返回并尝试从同一行中读取一个数字。 cin不能那样工作,如果您编写 cin >> t1>>t2,程序将从需要查找的两个行中读取两个数字,以查找两个数字。
这是正确编写代码的方法。
cin >> t1;
if (t1 == 0)
{
cin >> t2;
v.push_back(t2);
}
else if (t1 == 1)
{
cin >> t2;
cout << v[t2] <<"\n";
}
else if (t1 == 2)
{
v.pop_back();
}
看看如何运作?阅读第一个数字,然后根据需要分别阅读第二个数字。如果您要执行此操作,则仍可以使用此代码在同一行上输入两个数字。

关于c++ - 为什么我的C++代码不接受输入?我的代码有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63550711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com