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

Potrzebna pomoc w odpowiednim przerwaniu pętli

Object Storage Arubacloud
0 głosów
160 wizyt
pytanie zadane 3 lipca 2016 w C i C++ przez niezalogowany
edycja 3 lipca 2016
#include <iostream>

using namespace std;

double tablica[10];
double suma;
int licznik = 0;
bool flaga = false;

int main()
{
		while (!flaga)
		{
			flaga = true;
			for (int i = 0; i < 10; i++)
			{
				cin >> tablica[i];
				suma += tablica[i];
				licznik++;
			}

			if (cin.fail())
			{
				cin.clear();
                cin.ignore();
				flaga = false;
				break;
			}
		}

	double srednia = suma / licznik;
	cout << srednia << endl;

	cout << "Liczby wieksze od sredniej: ";
	for (int j = 0; j < licznik; j++)
	{
		if (tablica[j] > srednia)
		{
			cout << tablica[j] << " ";
		}
	}
	return 0;
}

Dlaczego licznik źle się nalicza? W jaki sposób mam przerwać naliczanie się licznika?

komentarz 3 lipca 2016 przez Szahid Pasjonat (20,930 p.)
Co rozumiesz poprzez to że licznik się źle nalicza
komentarz 3 lipca 2016 przez niezalogowany
Licznik nie przerywa swojego naliczania po wprowadzeniu wartości nieliczbowej, która powinna przerwać pętle i podać średnią oraz wartości od niej większe.

3 odpowiedzi

0 głosów
odpowiedź 3 lipca 2016 przez DawidRodycz Gaduła (3,090 p.)
wybrane 3 lipca 2016
 
Najlepsza
for (int i = 0; i < 10; i++)
            {
                cin >> tablica[i];
                if(cin.fail())
                    break;
                suma += tablica[i];
                licznik++;
            }

Nie przerywa twojej pętli for w której odbywa się naliczanie. Przerywa pętle do..while. W niej zamieściłeś break i ona zostaje przerwana w wypadku false dla cin.

komentarz 3 lipca 2016 przez niezalogowany
Dobra teraz jest OK. Dziękuję za pomoc :)
komentarz 3 lipca 2016 przez DawidRodycz Gaduła (3,090 p.)
Proszę.
0 głosów
odpowiedź 3 lipca 2016 przez DawidRodycz Gaduła (3,090 p.)
Nie za bardzo rozumiem z czym masz problem. Kod działa poprawnie.
komentarz 3 lipca 2016 przez niezalogowany

Wejście: 1 2 3 4 5 a

Wyjście: 10     Liczby większe od średniej: 2 3 4 5

Według mnie to nie jest dobre działanie kodu. Naliczanie licznika nie przerywa się po podaniu wartości nieliczbowej.

 

0 głosów
odpowiedź 3 lipca 2016 przez Kodeman Gaduła (4,480 p.)
Przynajmniej dla liczb do 10, licznik nalicza poprawnie. Co do przerwania licznika, to zależy kiedy tego chcesz

Podobne pytania

0 głosów
2 odpowiedzi 645 wizyt
pytanie zadane 28 września 2019 w C i C++ przez enigmatycznyclay Bywalec (2,450 p.)
+1 głos
2 odpowiedzi 413 wizyt
+1 głos
2 odpowiedzi 480 wizyt
pytanie zadane 17 kwietnia 2021 w C i C++ przez Doge Gaduła (3,370 p.)

92,568 zapytań

141,420 odpowiedzi

319,622 komentarzy

61,954 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!

...