-1

古いソフトウェアTurboC++4.5(1995)でコンパイルしていますが、エラーが発生しています。誰か助けてもらえますか?

#include<iostream.h>
#include<math.h>

void cal_root(int,int,int,float&,float&);
void main()
{
  float root1=0,root2=0;
  int a,b,c;
  cout<<"Enter the three co-efficients of quadratic equation with spaces.\n";
  cin>>a>>b>>c;
  cal_root(a,b,c,root1,root2);
  cout<<"The roots for given Quadratic Equation are "<<root1<<" & "<<root2<<".";
}
void cal_root(int a,int b,int c,float& root1,float& root2)
{
  root1=-b+(sqrt((b*b)-4ac))/(2a); //error here
  root2=-b-(sqrt((b*b)-4ac))/(2a); //error here
}

次のエラーが発生します:
Function call missing ) in function cal_root(int, int, int, float&, float &) 16行目と17行目

4

6 に答える 6

2

次のように乗算を行うことはできません。

4ac
2a

あなたはそれを綴る必要があります:

4 * a * c
2 * a

ただし、かっこを自由に使用できるようにしてください。たとえば、2 * aその式では、最初に2で除算し、次にaを掛けます。実際には、2で割り、aで割りたい場合。

実際、操作の順序が原因で、-bの配置も不適切です。式は次のようになります。

(-b + sqrt((b*b) - (4*a*c)))
    / (2*a)
于 2012-10-19T02:45:49.880 に答える
0

変数を定数で乗算することはできません2x。これは、リテラル2として扱われ、接尾辞xが付いているか、変数が何であれ、接尾辞が変数の表現を変更するためです(たとえば、LLはそれを扱います)。長い間)。

代わりに、:を使用してoperator*ください

4 * a * c
2 * a
于 2012-10-19T02:46:06.977 に答える
0

4acや2aを書くことはできません-これは数学ではありません。

変化する

4ac = 4*a*c
2a = 2*a

また、voidmainは間違っています。

于 2012-10-19T02:46:21.060 に答える
0

代数のように演算子を残すことはできません。4ac2aする必要が4*a*cあり2*aます。

また、より優れたコンパイラ/IDEを入手してください。Turbo C ++は、私が約10年前にプログラミングを始めたとき、最悪のくだらないものでした。それはまだそんなに悪いです。たとえば、Netbeansを使用します。

それが可能にするという単純な事実はvoid main()私の主張を証明しています。Mainは決して宣言されるべきではありませんvoid

于 2012-10-19T02:45:40.507 に答える
0

あなたは数学のクラスにいません、あなたは明示的に掛け算を書き出す必要があります:

4ac -> 4*a*c
2a -> 2*a
于 2012-10-19T02:45:44.480 に答える
0

初めに

  void cal_root(int a,int b,int c,float& root1,float& root2)
  {
      root1=-b+(sqrt((b*b)-4ac))/(2a); //error here
      root2=-b-(sqrt((b*b)-4ac))/(2a); //error here
  }

これは次のように書く必要があります

    void cal_root(int a,int b,int c,float& root1,float& root2)
    {
      root1=-b+(sqrt((b*b)-(4*a*c)))/(2*a); //correction
      root2=-b-(sqrt((b*b)-(4*a*c)))/(2*a); //correction
    }

第二に、メインでvoidを使用することは避けてください...(単なる提案)

于 2012-10-19T05:03:54.833 に答える