0

いくつかのコードを思いついたのですが、コンパイルできません。

エラー 1 エラー C2296: '^': 不正です。左オペランドの型は 'double'
です 2 IntelliSense: 式には整数型または列挙型が必要です

私が思いついたコードは次のとおりです。

#include<iostream>
#include<cmath>
using namespace std;

void getnumbers();
void showmean();
void showdev();

double x1, x2, x3, mean, dev;

void getnumbers()
{
    cout<<"Please enter three numbers\n";
    cin>>x1,x2,x3;
}

void showmean()
{
    mean=(x1+x2+x3)/3;

    cout<<"The mean of"<<x1<<", "<<x2<<", "<<x3<<" is "<<mean<<endl;
}

void showdev()
{
    dev=sqrt((x1 - mean)^2) + (x2 - mean)^2 + (x3 - mean)^2/3;

    cout<<"The standard deviation of"<<x1<<", "<<x2<<", "<<x3<<" is "<<dev<<endl;
}

int main()
{
    getnumbers();
    showmean();
    showdev();

    system("pause");

    return 0;
}
4

2 に答える 2

6
  1. C++ ではそのような権限を取得することはできません

    • 数学的 x 2std::pow()にはorを使用しますx*x
  2. 複数の入力の場合はcin >> x1 >> x2 ...etc

  3. あなたのSD方程式では、あなたの閉じた括弧は数学的に間違った場所にあると思います。

    • である必要がありますSD = sqrt( (x*x + y*y) / z )。あなたの閉じ括弧はそれを x + y*y/3 にします (または y 2/3、優先順位を忘れてください)
于 2012-10-09T17:22:48.897 に答える
2

値を二乗するための誤った演算子と括弧の欠落を除けば、指定されたプログラムは、関数が計算された値を返す必要があるという割り当ての部分を満たしていません。例えば:

double calculate_mean()
{
    return (x1+x2+x3)/3;
}
于 2012-10-09T17:30:06.063 に答える