C ++二维数组值增加

时间:2013-05-11 20:48:32

标签: c++ arrays

我希望上课完成这个课程。我在数组方面迷失了,我已经阅读了所有的课程作业,书籍等等。问题是你如何在这个位置增加一个二维数组元素?

    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;
}

3 个答案:

答案 0 :(得分:1)

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

您根本不需要像这样遍历数组。摆脱那些for循环。 warehouseproduct值由用户输入。您只需要访问相应元素的元素并添加到它:

inventory[warehouse][product] += quantity;

请注意+=的使用。这实际上修改了数组中的值,而不是仅仅取值并向其中添加quantity

接下来,您似乎只想打印与warehouse对应的仓库的库存。要做到这一点,你不应该遍历所有仓库,只迭代产品:

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

这里的教训是,如果你需要对每个元素做一些事情,你只需要迭代一些元素。在第一种情况下,您只需要向一个元素添加一个值,因此不需要迭代。在第二种情况下,您需要打印出一行元素,因此您必须遍历该行。

答案 1 :(得分:1)

之后的前两行
/* First the Addition */

是不必要的,似乎你试图遍历数组来获取你想要改变的索引。这是不必要的。

inventory[warehouse][product] += quantity;

是让程序正常运行所需的一切。它会将用户指定的数量添加到用户指定的索引中。

答案 2 :(得分:0)

inventory[warehouse][product] + quantity;

应该是

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

+仅返回添加,它不会修改任何操作数。 a += ba = a + b同义。

此处也不需要for循环。价值已经给出。