2013-05-11 3 views
0

Я ищу, чтобы закончить эту программу для класса. Я потерялся, когда дело доходит до массивов, и я прочитал всю курсовую работу, книгу и т. Д. Вопрос в том, как вы увеличиваете двумерный массив в позиции?C++ Увеличение двумерного массива

int main() 
{ 
int quantity, warehouse, product; 
int inventory[4][5] = { 
{900,400,250,95,153}, 
{52, 95, 625, 44, 250}, 
{100,720,301,50,878}, 
{325,650,57,445,584}, 
}; 
cout << "Enter the warehouse number between 1 and 4: " << endl; 
cin >> warehouse; 
cout << "Enter the product location between 1 and 5: " << endl; 
cin >> product; 
cout << "Enter the quantity delivered: " << endl; 
cin >> quantity;   

/* First the addition */ 
for(warehouse = 0; warehouse < 4; warehouse++) 
for(product = 0; product < 5; product++) 
inventory[warehouse][product] + quantity; 

cout << "The amount of units in warehouse " << warehouse << " is \n\n"; 


/* Then print the results */ 
for(warehouse = 0; warehouse < 4; warehouse++) { 
       for(product = 0; product < 5; product++) 
        cout << "\t" << inventory[warehouse][product]; 
       cout << endl; /* at end of each warehouse */ 
} 
return 0; 
} 

ответ

1
for(warehouse = 0; warehouse < 4; warehouse++) 
for(product = 0; product < 5; product++) 
inventory[warehouse][product] + quantity; 

Вам не нужно перебирать массив таким образом, как это вообще. Избавьтесь от этих for петель. Значения warehouse и product были введены пользователем. Вам просто нужно получить доступ к элементу соответствующего элемента и добавить к нему:

inventory[warehouse][product] += quantity; 

Обратите внимание на использование +=. Это фактически изменяет значение в массиве, а не просто принимает значение и добавляет к нему quantity.

Далее, похоже, что вы хотите распечатать инвентарь для склада, соответствующий warehouse. Чтобы сделать это, вы не должны быть итерация все склады, и только итерация продукции:

for(product = 0; product < 5; product++) { 
    cout << "\t" << inventory[warehouse][product]; 
} 

Урок здесь является то, что вам нужно всего лишь перебрать некоторые элементы, если вам нужно сделать что-то каждый из них. В первом случае вам нужно только добавить значение к одному элементу, поэтому нет итерации. Во втором случае вам нужно было распечатать ряд элементов, поэтому вам пришлось перебирать только эту строку.

+0

Спасибо, ребята. Это имело прекрасный смысл, и моя программа отлично работает. Интересно, почему чтение книги об этом - пустая трата времени. –

0
inventory[warehouse][product] + quantity; 

должен быть

inventory[warehouse][product] += quantity; 
//       ^^ 

+ возвращает только сложение, она не изменяет любой из операндов. a += b является синонимом a = a + b.

Здесь нет необходимости в цикле for. Значения уже заданы.

1

Первые две строки после

/* First the Addition */ 

являются uneccessary, кажется, что вы пытались перебрать массив, чтобы попасть в индекс вы хотели изменить. Это было необязательно.

inventory[warehouse][product] += quantity; 

все, что нужно, чтобы программа работала правильно. Он добавит количество, указанное пользователем в указанный пользователем указатель.