Как сделать так, чтобы массив выходил в виде слова, а не числа - PullRequest
0 голосов
/ 30 сентября 2019

Я создаю калькулятор размера корзины, и мне нужно, чтобы тип корзины тоже был в виде слова, а не чисел

Я пытался создать отдельные строки для каждого имени корзины, но безуспешно.

#include<iostream>
#include <string>

using namespace std;

int main() {

    int i;

    cout << "Welcome to Jasons bin size measurer!\n\nPlease answer the following questions: " << endl;

    cout << " Please Tell us your waste type " << endl << "By typing the corrosponding number: " << endl;

    char waste[11][50] = { " ", "General Waste = 1","Mixed Heavy Waste = 2", "Timber Waste = 3","Green Garden Waste = 4 ","Soil/Dirt = 5","Clean Fill/Hard Fill = 6","Concrete only = 7","Bricks only = 8", "Cardboard/Paper = 9","Metal only = 10" };

    for (i = 0; i < 11; i++) {
        cout << waste[i] << "\n";
    }

    cin >> waste[i];

    int length = 0;
    int width = 0;
    int height = 0;

    cout << "\nPlease enter the length: ";
    cin >> length;

    cout << endl << "Please enter the width: ";
    cin >> width;

    cout << endl << "Please enter the height: ";
    cin >> height;

    int volume = length * width * height;

    cout << endl;


    if (volume < 3) {
        cout << "A 2m " << waste << endl;

    }

    if (volume < 4 && volume > 2)  {
        cout << "\nA 3m bin ";

    }

    if (volume < 5 && volume > 3) {
        cout << "\nA 4m bin will meet your requirements";

    }

    if (volume < 7 && volume > 4) {
        cout << "\nA 6m bin will meet your requirements";

    }

    if (volume < 9 && volume > 6) {
        cout << "\nA 8m bin will meet your requirements";

    }

    if (volume < 11 && volume > 8) {
        cout << "\nA 10m bin will meet your requirements";

    }

    if (volume < 13 && volume > 10) {
        cout << "\nA 12m bin will meet your requirements";

    }

    if (volume < 22 && volume > 12) {
        cout << "\nA 21m bin will meet your requirements";

    }

    if (volume < 25 && volume > 21) {
        cout << "\nA 24m bin will meet your requirements";

    }

    if (volume < 32 && volume > 24) {
        cout << "\nA 31m bin will meet your requirements";

    }

    if (volume > 31) {
        cout << "\nUnfortunatly we do not have that bin size";
        return 0;
    }

}

Я ожидаю, что выходной сигнал будет x bin will meet your requirements(bin name) Однако он выглядит как X bin will meet your requirements 008FFA1C.

1 Ответ

0 голосов
/ 30 сентября 2019

У вас есть несколько проблем в вашем коде. Давайте начнем с того факта, что вы выделяете 11 строк в массиве, но читаете 12-ю. С этого момента все может случиться, это неопределенное поведение.

Далее вы возвращаете 0, только если volume > 31, что определенно является ошибкой.

Наконец, вы выводите двумерный массив вместоэлемент массива:

cout << "A 2m " << waste << endl;

Вы имели в виду

cout << "A 2m " << waste[0] << endl;

или что-то в этом роде?

...