003
03.03.2004, 11:42 Uhr
~(un)wissender
Gast
|
Ich habe deins mal überarbeitet:
C++: |
#include <iostream> #include <cstdlib> using namespace std;
float nmax(float*,int);
int main() { int n=0; do { cout << "Bitte 1-100 eingeben!" << endl; cin>>n; //Wenn bspw. ein Buchstabe eingegen wurde ist das nötig! if(cin.fail()) { cin.clear(); string garbage; getline(cin, garbage); } }while(n < 1 || n > 100); //Wir nutzen C++ float* f= new float[n];
for(int a = 0; a < n; ++a) { bool ok; do { ok = true; cout << "Wert " << a + 1<< ": "; cin >> f[a]; if(cin.fail()) { cin.clear(); string garbage; getline(cin, garbage); ok = false; } } while(!ok); cout << endl; } cout << "Max: " << nmax(f,n) << endl; //Immer gut seinen Speicher auch wieder freizugeben. delete [] f; //Besser als System... getchar(); return 0; }
float nmax(float* f,int n) { float max= 0.0f; for(int i = 0; i < n; ++i) { float temp = f[i]; if(temp > max) { max = temp; } } return max; };
|
Und meins auch *räusper*, denn da waren noch zwei Fehler drin...
C++: |
#include <iostream> #include <vector> #include <iterator> #include <string> #include <algorithm>
int main() { std::vector<float> vec; float temp; std::cout << "Buchstaben zum Beenden eingeben!\n"; //Einlesen while(true) { std::cin >> temp; if(std::cin) vec.push_back(temp); else break; } //Stream aufräumen std::cin.clear(); std::string garbage; std::getline(std::cin, garbage); //Ausgabe std::copy(vec.begin(), vec.end(), std::ostream_iterator<float>(std::cout, " ")); //Maximales Element if(vec.size() >= 1) std::cout << "\nMAX: " << *std::max_element(vec.begin(), vec.end()) << std::endl; else std::cout << "No input!" << std::endl; //Warten auf Userinput getchar(); return 0; }
|
|