0

最低スコアと最高スコアを見つけようとすると、エラーが発生し続けます

argument of type "double" is incompatible with parameter of type "double*"

コード:

cout << "The lowest of the results = " << find_lowest(score[5]);
cout << "The highest of the results = " << find_highest(score[5]);

system("Pause");


}

double find_highest(double a[])
{
double temp = 0;
for(int i=0;i<5;i++)
{
    if(a[i]>temp)
        temp=a[i];
}
return temp;
}

double find_lowest(double a[])
{
double temp = 100;
for(int i=0;i<5;i++)
{
    if(a[i]<temp)
        temp=a[i];
}
return temp;
}
4

4 に答える 4

0

score[5] は、スコア配列 (0,1,2,3,4,5) の位置 5 の double です。スコア配列の最初の 6 つの要素を送信したい場合は、次のようにしてみてください。

find_lowest((int[]){score[0],score[1],score[2],score[3],score[4],score[5]});

関数をもう少し柔軟にするためにこのようなことをする方が良い考えかもしれませんが、使用されている配列の長さを維持する必要があります (しかし、それらが6エレメント以上)。

double find_highest(double a[], size_t len)
{
   double temp = 0;
   for(size_t i=0;i<len;i++)
   {
       if(a[i]>temp)
       temp=a[i];
   }
   return temp;
}
于 2013-11-10T06:55:01.853 に答える
0

問題は、式が double 型find_lowest(score[5])score[5]あるのに対し、関数のパラメーター リストで指定したdouble[]double*、エラーが発生したことです。

そのため、次の修正を行います。

cout << "The lowest of the results = " << find_lowest(score);
cout << "The highest of the results = " << find_highest(score);

find_highest()また、関数にはいくつかのバグがあります。入力配列に a[]={-1.0,-2.0,-3.5,-5.0,-1.3} のようなすべての負の数値がある場合、関数はreturn 0どちらが正しくなく、正しい実装は次のようになります。

double find_highest(double a[])
{
 double temp = a[0];
 for(int i=0;i<5;i++)
 {
  if(a[i]>temp)
     temp=a[i];
 }
 return temp;
}

同様に、find_lowest()関数は次のようになります。

double find_lowest(double a[])
{
 double temp = a[0];
 for(int i=0;i<5;i++)
 {
  if(a[i]<temp)
     temp=a[i];
 }
 return temp;
}
于 2013-11-10T06:57:43.720 に答える