nicht in der 'double' in 'double*' for argument '1' to 'float sumall(double arr[])
Ich bin ein C & Assembler-Programmierer. Aber C++ ist so dumm. Ich kann nicht verstehen, was mache ich hier falsch. Kann mir jemand erklären, warum ich diese Fehlermeldung bekommen? Hier ist mein code:
GNU nano 2.2.6 Файл: assignment4.cpp
#include <cstdlib>
#include <iostream>
#define SIZE 10
int counter = 0;
const double TAX = 1.13;
float sumall(double arr[]);
int main (int argc, char **argv)
{ double array[SIZE] = {0,0,0
,0,0,0
,0,0,0
,0};
while (counter < (SIZE-1))
{
if (array[counter-1] == -99)
break;
else continue;
std::cout << "Enter any number [1 WORD long]: ";
std::cin >> array[counter];
++counter;
}
std::cout << "The total price is: $" << sumall(array[SIZE]);
return EXIT_SUCCESS;
}
float sumall(double arr[])
{
float total=0;
for(int i=0;i<SIZE;++i)
{
total+=arr[i];
}
total*=TAX;
return (total*TAX);
}
Ebenfalls, wie kann ich diesen Fehler beheben Sie mithilfe von Vorlagen (was ich gehört habe ist möglich in C++), danke!
- Also, C++ ist dumm, weil Sie es nicht verstehen? Ist Ihre bevorzugte Sprache, C, auch dumm? Weil du scheinbar nicht verstehen, dass, weil, wenn Sie nahm die C++ - spezifischen code, die Sie erhalten würden, die gleichen Fehler, aus dem gleichen Grund in C.
- So behauptete er, ein C-Programmierer. LOL
Du musst angemeldet sein, um einen Kommentar abzugeben.
haben Sie
int counter = 0;
undif (array[counter-1] == -99)
in der ersten iteration der Schleife, wird der access-index
0 - 1 = -1
.in Ihrem
sumall
Funktion, haben Sie erklärt, bis Sie wieder schwimmen, aber da Sie addieren verdoppelt sich der endgültige Wert wird doppeltund verwenden Sie besser
const int SIZE = 0
viel mehr sicherer als die Verwendung von#define
und in Ihrer Funktion aufrufen, um
sumall
,sumall(array[SIZE])
, keine Notwendigkeit, übergeben Sie den array-Größe.es nur so nennen,
sumall(array)
Ich denke, es sollte wie folgt sein :
Auch insgesamt sollte das doppelte