• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Program usuwający liczby mniejsze od średniej

Object Storage Arubacloud
0 głosów
179 wizyt
pytanie zadane 24 października 2018 w C i C++ przez KmNwK Nowicjusz (210 p.)

Treść problemu jest taka:

Dana jest tablicy liczb całkowitych (nie więcej niż 100 elementów).W jednym kroku usuwane są wszystkie liczby mniejsze lub równe średniej. Po ilu minimalnie krokach y tablicy zostaną usunięte wszystkie elementy?

Wejście

Pierwsza liczba to liczba liczb. Potem kolejno po spacjach wypisane zostają właściwe liczby.

Wyście

Pojedyncza liczba oznaczająca minimalną liczbę kroków.

Przykład

Wejście

6 4 4 4 6 6 6 

Wyjście 

2

Nie wiem dokładnie jak taki program napisać, zwłaszcza jak dopisać wartości podane przez użytkownika do tablicy i robić na niej działania.

Z góry dziękuje, jestem nowy w C++.

komentarz 24 października 2018 przez niezalogowany

W jednym kroku usuwane są wszystkie liczby mniejsze lub równe średniej. Po ilu minimalnie krokach y tablicy zostaną usunięte wszystkie elementy?

To jest nielogiczne. Jesteś pewien, że wstawiłeś pełną i poprawną treść zadania?

komentarz 24 października 2018 przez KmNwK Nowicjusz (210 p.)
Tak pewien.

3 odpowiedzi

0 głosów
odpowiedź 24 października 2018 przez Zayebisty Gaduła (3,200 p.)
no  skoro pierwsza liczba to liczba wszystkich liczb to  zczytujesz ja i dynamicznie tworzysz odpowienio duza tablice zapisujesz do niej reszte  liczb potem liczysz srednia to chyba umiesz z podstawowki i potem usuwasz liczac kroki najlepiej w petli
0 głosów
odpowiedź 24 października 2018 przez KmNwK Nowicjusz (210 p.)
#include <iostream>

using namespace std;

int main()
{
	int tab[100], licznik = 0, i = 0, liczba_liczb;
	double srednia = 0;
	cin >> liczba_liczb;
	for (i = 0; i < liczba_liczb; i++)
	{
		cin >> tab[i];
	}
    double suma = 0;
	for ( i = 0; i <liczba_liczb; i++)
	{	
		suma = suma + tab[i];
	}
	 srednia = (suma) / liczba_liczb;
	for (int t = liczba_liczb - 1; t >= 0; t--)
		{
			if (tab[t] < srednia)
			{
				tab[t] = 0;
				++licznik;	
				suma = 0;
				for (i = 0; i <liczba_liczb; i++)
				{
					suma = suma + tab[i];
				}
			 srednia = (suma) / liczba_liczb;
			}
			 
		}			
	cout << licznik;
	return 0;
}

4 godziny poprawiałem ale działa, dziekuję za uwagę.

0 głosów
odpowiedź 24 października 2018 przez RafalS VIP (122,820 p.)

Ja bym to tak zrobił:

#include <iostream>
#include <algorithm>
#include <vector>
#include <numeric>
using namespace std;

int main()
{
	int n, number;
	cin >> n;
	vector<int> v;
	v.reserve(n);
	for (int i = 0; i < n; i++) {
		cin >> number;
		v.push_back(number);
	}
	int counter = 0;
	while (v.size() > 0) {
		counter++;
		double average = accumulate(v.begin(), v.end(), 0.0) / v.size();
		v.erase(remove_if(v.begin(), v.end(), [average](int x) { return x <= average; }), v.end());
	}
	cout << counter << endl;
}

Podobne pytania

–1 głos
0 odpowiedzi 497 wizyt
pytanie zadane 18 stycznia 2016 w Inne języki przez niezalogowany
0 głosów
1 odpowiedź 1,060 wizyt
pytanie zadane 2 maja 2018 w C i C++ przez XSPACE Użytkownik (690 p.)
0 głosów
1 odpowiedź 156 wizyt
pytanie zadane 5 grudnia 2018 w C i C++ przez Cevet Nowicjusz (120 p.)

92,579 zapytań

141,432 odpowiedzi

319,657 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...