私の仕事は、いくつかの double 変数を入力して read() し、それらをベクトルに格納することです。その後、関数 compute() は、ベクトルに格納されているすべての変数の合計とそれらの平均を計算する必要があります。これらの機能を修正しましたが、うまく機能します。問題は最終関数 print() にあります..関数は結果を出力する必要があります-「合計」変数と「平均」変数。しかし、print() のコードが正しく機能せず、間違った数字が出力されます。これが私のコードです:
#include <iomanip>
#include <cstdlib>
#include <iostream>
#include <vector>
using namespace std;
vector<double> read(){//this function works fine
cout << "Write some numbers with space between them?" << endl;
double numz;
vector<double> myvector;
do {
cin >> numz;
myvector.push_back (numz);
} while (numz);
return myvector;
}
void compute(double average, double sum, vector<double> &myvector){//this function works fine
//if i put cout in this function it calculates correctly
vector<double>::iterator it;
for ( it=myvector.begin() ; it < myvector.end()-1; it++ ){
sum += *it;
}
average = sum/myvector.size();
}
void print(double average, double sum){//this is printing out wrong numbers
cout.precision(2);
cout << sum << endl;
cout << fixed << average << endl;
}
int main (){
vector<double> myvector = read();
double average;
double sum;
compute(average, sum, myvector);
print(average, sum);//this is printing out wrong numbers
system("pause");
return 0;
}
事前に助けてくれてありがとう、私は私の問題が関数間の変数の受け渡しにあることを理解していますが、私は一日中デバッグとチュートリアルの読み取りに運がありませんでした。