こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

C++の質問です

C++の質問です。

c++をコンパイルしたとき、
出力されるのが次のように3つ同時にされるようにしたいのですが、

1、 名前 ○○○○ 番号 ○○○○ x= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}の平均

2、 x= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}の分散 y= {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}の標準偏差

3、 x={1,2,3,4,5,6,7,8,9,10}と y={10,9,8,7,6,5,4,3,2,1}の相関係数

下記のソースをどのように変えればいいでしょうか。
ちなみに、C言語ではなくC++なので
C++形式でお願いします。

どうかお願いします。

#include <iostream>
#include <cmath>

using namespace std;

double Mean(int *a, int size);
double StandardDeviation(int *a, int size);
double CoefficientOfCorrelation(int *a, int *b, int sizeA, int sizeB);


int main()
{
int x[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int y[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};


cout << " 標準偏差 : " << StandardDeviation(x, sizeof(x) / sizeof(int)) << endl << " 相関係数 : " << CoefficientOfCorrelation(x, y, sizeof(x) / sizeof(int), sizeof(y) / sizeof(int)) << endl;

return 0;
}


double Mean(int *a, int size)
{

if (size <= 0)
{
return -1.0;
}

double d = 0.0;

for (int i = 0; i < size; i++)
{
d += *(a + i);
}

return d / size;
}


double StandardDeviation(int *a, int size)
{
if (size <= 0)
{
return -1.0;
}

double mean = Mean(a, size);

double d = 0.0;

for (int i = 0; i < size; i++)
{
d += pow(*(a + i) - mean, 2);
}

return sqrt(d / size);
}

double CoefficientOfCorrelation(int *a, int *b, int sizeA, int sizeB)
{
if (sizeA > 0 && sizeB > 0 && sizeA != sizeB)
{
return -1.0;
}

double meanX = Mean(a, sizeA);
double meanY = Mean(b, sizeB);

double sdX = StandardDeviation(a, sizeA);
double sdY = StandardDeviation(b, sizeB);

double coeff = 0.0;

for (int i = 0; i < sizeA; i++)
{
coeff += (*(a + i) - meanX) * (*(b + i) - meanY);
}

return (coeff / (sizeA * sdX * sdY));
}

投稿日時 - 2008-01-21 14:59:16

QNo.3699928

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

揚げ足を取るようで申し訳ないのですが...

> c++をコンパイルしたとき、
> 出力されるのが次のように3つ同時にされるようにしたいのですが、

これを言葉通りに解釈すると、

#error 1、 名前 ○○○○ 番号 ○○○○ x= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}の平均 \
2、 x= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}の分散 y= {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}の標準偏差 \
3、 x={1,2,3,4,5,6,7,8,9,10}と y={10,9,8,7,6,5,4,3,2,1}の相関係数

とするしかありません。
出力するのは、「コンパイルしたとき」ではなく「実行したとき」ではないのですか?

投稿日時 - 2008-01-21 17:29:00