C++ :: Aufgabe #293

2 Lösungen Lösungen öffentlich

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:

vote_ok
von JKooP (18090 Punkte) - 24.07.2020 um 17:18 Uhr
Quellcode ausblenden C-Code
// 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;
}
vote_ok
von basic (1310 Punkte) - 24.09.2020 um 02:08 Uhr
Quellcode ausblenden C-Code
#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";
}