c ++从结构

时间:2017-12-08 00:44:27

标签: c++ visual-studio

我正在研究一些事情,我必须做的主要是:

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两次因为它会覆盖它但我不完全确定如何解决它

1 个答案:

答案 0 :(得分:0)

阅读您的代码,您似乎混淆了namnum个变量。

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,反之亦然。