2017-06-16 11 views
-4

Die meisten der Code scheint in Ordnung zu sein brauchen Hilfe mit dem Teil, um das Minimum zu finden. Welche Bedingung muss ich eingeben, um die vom Benutzer eingegebene Mindestanzahl zu finden und die Null als Mindestanzahl auszuschließen?Wie kann ich den minimalen Wert finden, den der Benutzer richtig eingeben kann?

#include<iostream>//header 
#include <string> 
using namespace std; 
int main() { 
int n , sentinel = 0, max = 0, min, count = 0, sum = 0; 
double avg; 
cout << "Enter a series of number terminated by 0:" << endl;//prompt user to input a series of number 

do { 
    cin >> n;//read the input 
    for (int i = 0; i < n; i++) { 
     if (n>max) 
      max = n; 
     } 
    for (int i = 0; i < n; i++) { 
     if (n<min) 
      min = n; 
    } 
    sum = sum + n; 
    count++; 



} while (n!= sentinel); 
count--; 
avg = sum/count; 

cout << "You have enter " << count << " integers" << endl;//display how may input user enter 
cout << "Average is " << avg << endl;//display average 
cout << "Max is " << max << endl;//display maximum number 
cout << "Min is " << min << endl;//display minimum number 
    system("pause"); 
    return 0; 

} 
+4

Falsche Seite. Dies sollte auf https://codereview.stackexchange.com sein. –

+0

Sie benötigen einen vernünftigen Startwert für 'min', aber Ihr Code funktioniert nicht für das Maximum (versuchen Sie nur negative Zahlen) oder Durchschnitt (versuchen Sie 1 und 2, oder -1 und 2) entweder. – molbdnilo

+1

Versuchen Sie einem Freund (sogar einem imaginären) zu erklären, was der Punkt des 'for (int i ...' loops ist. – molbdnilo

Antwort

0

Sie mit dem maximal möglichen Wert für Ihre int min; und den kleinstmöglichen Wert für Ihre int max; starten:

int min = std::numeric_limits<int>::max(); 
int max = std::numeric_limits<int>::min(); 

Dann was Sie für die min eingeben muss als sein Anfangswert kleiner sein und was immer Sie für die max eingeben, muss größer sein als der Anfangswert.

+0

Es sollte vertauscht werden, sollte es nicht? Sonst 'if (n max) max = n;' wird nie wahr sein. –

+0

@AndreKampling heh natürlich, :) – Galik

Verwandte Themen