编写一个将覆盖main函数数组中的值的函数

时间:2015-04-20 07:30:57

标签: c++ arrays

我遇到了一个问题,其中已经提供了主要功能,我需要创建一个能够计算任何问题的函数。我试图弄清楚如何用我从我创建的函数中获得的新值来覆盖main函数中的数组,我遇到了问题。到目前为止,最终结果是它只打印出原始数组中的任何内容。

#include "stdafx.h"
//Windows Visual studio seems to want me to add this in order for it to work
#include <iostream>
#include <fstream>
#include <string>
using namespace std;


void change_price(float price[], float percent_change){

    for (int j = 0; j < 8; j++){
    (price[j] * (100 + percent_change)) / 100 ;
   }    
}


/*
This program inputs an array of item prices on sale
There is a 25% discount and the NY sales tax 8.875 is computed on the     reduced price
It then prints the resulting prices
*/
int main(){
    float prices[] = { 10, 27, 83, 15, 39, 120, 87, 20 };
    change_price(prices, -25.0);
    change_price(prices, 8.875);
    cout << "final prices\n";
    for (int i = 0; i < 8; i++)
        cout << prices[i] << endl;

}

1 个答案:

答案 0 :(得分:2)

您认为没有变化的原因是,因为您没有在您的函数中为您的数组分配任何新值。尝试类似:

price[j]=(price[j] * (100 + percent_change)) / 100 ;

在你的循环中。

编辑:

我的一些建议:如果您必须自己编写这样的代码(在主函数中),请使用std::vectorstd::array。不幸的是,幸运的是,它们不是c风格阵列的替代品,但除了一些其他优点外,它们还可以消除任何关于传递引用或传值的混淆