2016-04-07 7 views
0

私はC++が初めてで、プログラムの平均、中央値、標準偏差、最小値、最大値を計算するプログラムを作成しています。私が抱えている問題は、プロジェクト内の他のファイルから関数を正しく呼び出す方法がわからないことと、配列を印刷しようとすると0 x 0017cのような奇妙な値が返されることです(cout < <) 530(スペースは無視する)。もし誰かがこれらの関数を正しく返すのを助けて、リストを正しく印刷することができたら、私はとても感謝しています!以下は私のコードです(.hファイルは含みません)。配列の問題と返される関数

#include <iostream> 
using namespace std; 
#include "stats.h" 

int main() 
{ 
    double nums[10000] = {}; 
    int n; 

    cout << "Enter number of values: "; 
    cin >> n; 

    for (int i = 1; i <=n; i++) { 
     cout << "Enter number " << i << ": "; 
     cin >> nums[i-1]; 
    } 

    // me trying to print the nu ms list 
    cout << nums << endl; 

    // me trying to call the function 
    double mean(double nums[], int n); 

    return 0; 

} 

stats。あなたは、アレイ内一度に一つの値を入力するループを持っているだけのように

#include "stats.h" 


double mean(double nums[], int n) 
{ 
    double sum = 0; 
    double average; 

    for (int i = 0; i > n; i++) { 
     sum += nums[i]; 
    } 

    average = sum/n; 

    return average; 
} 
+1

現在の回答では、「平均」のループ終了条件が間違っていることを指摘していません。 'i paddy

答えて

0

代わりの

cout << nums << endl; 

をCPP、あなたはまた、配列から一度に1つの値を印刷するために同様のループを必要とします。

は、別の翻訳単位から関数を呼び出すには、通常、ヘッダファイル内の関数を宣言し、あなたの stats.hは、優れた候補者のようになります。

double mean(double nums[], int n); 

そしてちょうどあなたのメインからそれを呼び出す:

std::cout << mean(nums, n) << std::endl; 

これだけです。

また:

using namespace std; 

あなたが誰かが記憶喪失を取得するのに役立ち、そしてcompletely forget that C++ has anything like this持っている必要があります。これは悪いプログラミングの習慣です。

+0

さて、私はstd :: coutを使いました。<< mean(nums、n)<< std :: endl; ....それは働いている:)!しかし、まだ問題は残っています。コマンドプロンプトに平均値が表示されません。 – jnestor

+0

"コマンドプロンプトに出力しない"という意味はわかりません。いずれにしても、コンパイラのデバッガの使い方を学び、一度に1行ずつステップ実行し、すべての変数の値を調べ、自分のコードが正しいことを確認します。それは間違っている。 –

+0

私は問題を解決しました。ありがとうございます! – jnestor

0

double mean(double nums[], int n);は、関数の呼び出しではなく、関数の呼び出しです。あなた

double mean_value = mean(nums, n); 
cout << mean_value << endl; 

そしてcout << nums << endl;は、アレイのちょうどアドレス、配列の要素を印刷しません必要があります。すべての要素を出力するには、配列をループする必要があります。

関連する問題