c ++ для цикла и двухмерного массива

0

Я хочу создать программу c++, которая может рассчитать количество проданного продукта за 3 года.

Я хочу сделать это с помощью 2-мерного массива и цикла for (требование для практического вопроса)

но почему-то я не могу получить желаемый результат. Существует некоторая ошибка среди вычислений и хранения. Не могли бы вы помочь мне определить ошибку?

#include <iostream>
#include <string>
#include <array>
using namespace std;
int main(){
    int quantity[3][12];
    int sum[3];
    int *p;
    p=sum;
    int total;
    int year=0;
    string months[12]={
        "January",
        "February",
        "March",
        "April",
        "May",
        "June",
        "July",
        "August",
        "September",
        "Octorber",
        "November",
        "December"
    };
    for (int i=0; i<12; i++) {
        cout<<"Enter the quantity sold in "<<months[i]<<endl;
        cin>>quantity[year][i];
        if(i==11&&year<3){
            year++;
            i=-1;
        }
    }
    year=0;
    for (int i=0; i<12; i++) {
        sum[year]+=quantity[year][i];
        if (i==11&&year<3) {
            i=(-1);
            year++;
        }
    }
    year=0;
        for (int i=0; i<3; i++) {
            cout<<"the information for year "<<(i+1)<<" is " <<endl;
            for (int i1=0; i1<12; i1++) {
                cout<<quantity[year][i1]<<endl;
            }
            cout<<"the sum of the "<< (i+1)<< " year: "<<sum[year]<<endl;
            total+=sum[year];
        }
    cout<<"the total amount sold in three year is "<<total<<endl;

    return 0;
}
  • 0
    Существует некоторая ошибка между расчетом и хранением. неясно. Укажите точную проблему.
Теги:
arrays

1 ответ

0
Лучший ответ

Проблема в этом разделе:

    year=0;
        for (int i=0; i<3; i++) {
            cout<<"the information for year "<<(i+1)<<" is " <<endl;
            for (int i1=0; i1<12; i1++) {
                cout<<quantity[year][i1]<<endl;
            }
            cout<<"the sum of the "<< (i+1)<< " year: "<<sum[year]<<endl;
            total+=sum[year];
        }
    cout<<"the total amount sold in three year is "<<total<<endl;

    return 0;
}

Похоже, вы думаете, что вы итерации год, в то время как вы на самом деле итерации я и i1. Почему бы не использовать тот же трюк, который вы использовали пчел вместо цикла i1 for?

if (i==11&&year<3) {
    i=(-1);
    year++;
}
  • 0
    Спасибо!!! Я мог бы использовать один и тот же метод, но я пытался применить разные способы решения этого вопроса, поскольку это было сделано для практических целей. Еще раз спасибо!
  • 0
    Не могли бы вы щелкнуть галочку рядом с моим решением, указывая, что этот вопрос решен?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню