2017-02-26 18 views
-5
void mult(int number2, int argc, char** argv) 
{ 
    for (int i = 4; i < argc; i++) { 
     double number3 = atof(argv[i]); 
     double number2 = number2 * number3; 
     cout << number2 << endl; 
    } 
} 

meine Eingabe istC++ sehr seltsame Zahlen

./calc1 * 1 2 4 5 6 

, wenn ich dieses Programm ausführen, Ausgabe lautet:

2.07418e-317 
4.14837e-317 
1.65935e-316 
8.29674e-316 
4.97804e-315 

I gedit verwenden.

+0

'double number2 = number2 * number3;' Tippfehler, die erste Nummer auf der RHS sollte 'number3' sein. –

Antwort

1
double number2 = number2 * number3; 

benötigen Sie number2 mit einem gewissen Wert zu initialisieren sonst enthalten einen Müll Wert, der mit number3

Split obiger Aussage in zwei Anweisungen

double number2 = /*some value to initialize number2*/; 
number2 *= number3; //now perform multiplication 

Zusätzlich multipliziert wird immer, number2 geben wird in Funktion mult als ein Argument, und Sie erklären auch eine neue Variable mit dem gleichen Namen number2 innerhalb mult Spaß ction.

+0

Entschuldigung Es ist mein Fehler Ich nenne diese Funktion mit int number1 = 1; mult (Zahl1, Argc, Argv); –