2016-04-05 15 views
0

Ich habe den folgenden Code für ein C++ - Programm entwickelt, um Folgendes zu tun: Entwickeln und Ausführen eines Programms, das zwei Funktionen hat, die den maximalen Wert finden - (nennen Sie es findLargest) in einem Array und den Mindestwert (nennen Sie es findSmallest) in einem Array. Der Code kompiliert ohne Problem, aber die Ausgabe wird nicht richtig angezeigt, ich bekomme eine Reihe von sich wiederholenden Zahlen, die lesen "-9.25596e + 61" Wenn jemand mir helfen könnte, dieses Problem zu beheben, würde es sehr geschätzt werden. Danke.C++: Problem mit der Ausgabe

#include <iostream> 
 
using namespace std; 
 

 
double findLargest(const double LIST[], int); 
 
double findSmallest(const double LIST[], int); 
 
void printArray(const double LIST[], int); 
 

 

 
int main() 
 
{ 
 
\t cout.setf(ios::fixed); 
 
\t cout.setf(ios::showpoint); 
 
\t cout.precision(2); 
 

 
\t const int MAX = 10; 
 

 
\t double list[MAX] = { 32, 54, 67.5, 29, -34.5, 80, 115, 44.5, 100, 65 }; // elements for the array 
 
\t printArray(list, MAX); 
 

 
\t cout << "\n\nThe largest number is: " << findLargest(list, MAX); 
 
\t cout << "\n\nThe smallest number is: " << findSmallest(list, MAX) << "\n\n"; 
 

 
\t system("pause"); 
 
\t return 0; 
 
} 
 

 
double findLargest(const double LIST[], int size)    //function to evaluate the largest elements and output it out 
 
{ 
 
\t double largest = LIST[0]; 
 
\t for (int a = 0; a < size; a++) 
 
\t { 
 
\t \t if (LIST[a] > largest) 
 
\t \t { 
 
\t \t \t largest = LIST[a]; 
 
\t \t } 
 
\t } 
 
\t return largest; 
 
} 
 

 

 
double findSmallest(const double LIST[], int size)  // function to evaluate the smallest and output it out 
 
{ 
 
\t double smallest = LIST[0]; 
 
\t for (int a = 0; a < size; a++) 
 
\t { 
 
\t \t if (LIST[a] < smallest) 
 
\t \t { 
 
\t \t \t smallest = LIST[a]; 
 
\t \t } 
 
\t } 
 
\t return smallest; 
 
} 
 

 
void printArray(const double LIST[], int size)     // function to print array 
 
{ 
 
\t cout << "\n\nThe size of the element is: " << size << "\n\n"; 
 
\t for (int a = 0; a < size; a++) 
 
\t { 
 
\t \t cout << setw(9) << LIST[a]; 
 
\t \t if ((a + 1) % 8 == 0) 
 
\t \t \t cout << endl; 
 
\t } 
 
}

+0

Haben Sie versucht, dies mit einem Debugger ausführen, vielleicht versuchen Sie mit gdb. Suchen Sie nach Tutorials online. Es wird Ihnen auch helfen, in der Zukunft zu debuggen. – Sarcoma

+0

Ich habe Ihren Code kopiert und eingefügt, und ich musste '# ' 'vor der Ausführung einfügen, weil sonst' setw() 'nicht deklariert wurde. Nachdem ich jedoch diese Datei hinzugefügt hatte, lief das Programm genau so, wie es sein sollte. Haben Sie "Iomanip" irgendwo in Ihrem Programm? Wenn nicht, könnte das Ihr Problem sein. – Fearnbuster

Antwort

0

Soweit ich sehen kann, Ihr Problem ist, dass Sie die Datei aufgenommen werden müssen:

<iomanip> 

die Zeile hinzufügen:

#include <iomanip> 

zu der Anfang Ihres Codes und sehen, ob das etwas hilft.

+0

Das hat mein Problem behoben. Vielen Dank! –

+0

@JustinHartley Ja, kein Problem, Mann. Verwenden Sie einen Debugger? Wenn nicht, solltest du. Mein Debugger hat Ihr Problem sofort erkannt. Ich konnte deinen Code nicht einmal ausführen, ohne 'iomanip' einzubeziehen. – Fearnbuster