C++ :: Aufgabe #293
2 Lösungen
Rationale Zahlen einlesen: Mittelwert,Produkt und das Maximum ermitteln
Anfänger - C++
von Cara
- 10.05.2020 um 21:54 Uhr
Schreiben Sie ein Programm, das n rationale Zahlen einliest / einlesen kann und den Mittelwert, das Produkt und das Maximum dieser Zahlen ermittelt und ausgibt.
Lösungen:
// C++ 11
#include <algorithm>
#include <iostream>
#include <vector>
#include <string>
#include <numeric>
using namespace std;
int main()
{
auto max_numbers{ 0 };
auto counter{ 0 };
vector<double> vec_numbers;
cout << "Anzahl der einzugebenen Zahlen: ";
cin >> max_numbers;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
if (max_numbers < 1)
{
cout << "Das war keine positive Zahl!";
return 0;
}
while (max_numbers != counter)
{
auto number{ 0.0 };
cout << "Bitte Gleitkommazahl " << ++counter << " von " << max_numbers << " eingeben: ";
cin >> number;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
vec_numbers.push_back(number);
}
auto cnt = vec_numbers.size();
auto sum = accumulate(vec_numbers.begin(), vec_numbers.end(), 0.0);
auto avg = sum / vec_numbers.size();
auto min = *min_element(vec_numbers.begin(), vec_numbers.end());
auto max = *max_element(vec_numbers.begin(), vec_numbers.end());
auto pro{ 1.0 };
for (const auto& p : vec_numbers) pro *= p;
cout << "\nAlle Zahlen: ";
for (const auto& n : vec_numbers) cout << n << " ";
cout << "\nAnzahl Zahlen: " << cnt
<< "\nSumme: " << sum
<< "\nMittelwert: " << avg
<< "\nMinimum: " << min
<< "\nMaximum: " << max
<< "\nProdukt: " << pro << endl;
}
#include <iostream>
#include <vector>
#include <cmath>
#include <climits>
using namespace std;
long getmax(vector<long> v) {
long max = v.at(0);
for(auto val : v) {
if(max < val) {
max = val;
}
}
return max;
}
long getprod(vector<long> v) {
long prod = 1;
for(auto val : v) {
prod *= val;
}
return prod;
}
long getavg(vector<long> v) {
long avg = 0;
for(auto val : v) {
avg += val;
}
avg /= v.size();
return avg;
}
int main() {
int num, n;
long prod, avg, max;
vector<long> vec;
do {
cout << "Wieviele Zahlen > 0 sollen eingegeben werden: ";
cin >> n;
} while(n <= 0);
while(n-- > 0) {
cout << "Zahl eingeben: ";
cin >> num;
vec.push_back(num);
}
max = getmax(vec);
prod = getprod(vec);
avg = getavg(vec);
cout << "\nMaximum: " << max << "\n";
cout << "Produkt: " << prod << "\n";
cout << "Mittelwert: " << avg << "\n";
}