我正在研究一些事情,我必须做的主要是:
1)声明一个名为partType的结构,它有两个成员:name(保存一个名字 部分)和代码(包含整数)。
2)声明两个类型为partType的变量。
3)提示用户输入第一个项目的名称和代码并存储它们 进入相应的变量。
4)提示用户输入第二个项目的名称和代码并存储它们 进入相应的变量。
5)按代码比较项目并显示如下所示的输出 以下示例:
示例1: 输入item1的名称和代码:bolt 22222
输入item2的名称和代码:nut 11111
螺栓跟踪库存中的螺母
示例2: 输入item1的名称和代码:bolt 11111
输入item2的名称和代码:nut 22222
螺栓在库存中的螺母之前移动
我目前的代码是:
#include <iostream>
#include <string>
using namespace std;
struct partType {
string name;
int code;
};
int main() {
partType nam, num;
cout << "enter name and code of item1: ";
cin >> nam.name >> num.code;
cout << "enter name and code for item2: ";
cin >> nam.name >> num.code;
if (num.code > num.code) {
cout << nam.name << " goes after " << nam.name;
}
else if (num.code < num.code) {
cout << nam.name << " goes before " << nam.name;
}
else {
cout << "tie";
}
system("pause");
return 0;
}
我觉得我不应该使用nam和num两次因为它会覆盖它但我不完全确定如何解决它
答案 0 :(得分:0)
阅读您的代码,您似乎混淆了nam
和num
个变量。
partType nam, num;
这一行创建了两个partType
个变量,一个名为nam
,另一个名为num
。
cout << "enter name and code of item1: ";
cin >> nam.name >> num.code;
小心!您提示输入第一个项目的名称和代码,但是您将代码的输入放入第二个变量!
cout << "enter name and code for item2: ";
cin >> nam.name >> num.code;
不是设置第二个变量num
的两个字段,而是设置第二个变量的code
字段,而是设置第一个变量的name
字段,并且此外,您将覆盖从第一个输入提示输入的数据。
if (num.code > num.code) {
cout << nam.name << " goes after " << nam.name;
}
else if (num.code < num.code) {
cout << nam.name << " goes before " << nam.name;
}
您正在将表达式与自身进行比较。您应该num.code < nam.code
,反之亦然。