如何通过2次输入获取4个整数值?C++编程新手求助
问题解决方案
首先,你的代码存在两个核心问题:
- cin输入语法错误:
cin >> a, b;里的逗号是逗号运算符,只会执行cin >> a,b不会被读取输入。正确的多变量输入语法是用>>连接,比如cin >> a >> b;。 - 变量类型不符合需求:你需要处理整数,却用了
float类型,应该改用int更合适。
另外,你提到“第二次输入得到3”,这里的逻辑是:两次输入操作(两次回车)总共提供4个整数即可——C++的cin会自动忽略空格、换行等空白字符,不管你把4个数分几次输入,只要输入的内容是4个整数,就能正确按顺序填充变量。
修正后的代码如下:
#include <iostream> using namespace std; int main(){ int A, B, a, b, c, d; cout << "第一次输入1-2个整数:\n"; cin >> a >> b; cout << "第二次输入剩余整数(凑够4个即可):\n"; cin >> c >> d; A = a + b; B = c + d; cout << "Sum of factors A: " << A << endl; cout << "Sum of factors B: " << B << endl; if (A < B){ cout << "Sum of factors for integer A < Integer B" << endl; } else if(A > B){ cout << "Sum of factors for integer B < Integer A" << endl; } else { // 补充原代码缺失的相等情况处理 cout << "Sum of factors for integer A equals Integer B" << endl; } return 0; }
代码说明
- 输入语法修正:用
cin >> a >> b;和cin >> c >> d;实现多变量读取,支持同一次输入多个整数(比如第一次输入2 3回车,第二次输入4 5回车;或者第一次输入2回车,第二次输入3 4 5回车),cin会自动按顺序填充变量直到4个值全部获取。 - 变量类型调整:将
float改为int,匹配你处理整数的需求。 - 完善逻辑分支:补充了原代码未处理的A、B相等的情况。
- 提示信息优化:明确两次输入的要求,避免操作混淆。
内容的提问来源于stack exchange,提问作者Emman Alba
相关产品推荐
相关产品推荐

