Przerwanie wczytywania do tablicy

Przerwanie wczytywania do tablicy
R1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 22
0

Witam, jestem tu nowy. Jako, że są wakacje wziąłem się za naukę c++, mam pewne zadanie do napisania a mianowicie w tablicy typu double wpisujemy max 10 wartości(ale możemy skończyć wcześniej wpisując wartość nieliczbową ). Na końcu program miał wyliczyć średnią i wypisać wartości większe od średniej, w zasadzie banał tylko mam problem z tym przerwaniem bo np wpisuje 5 wartości typu double i na końcu 'a' pętla się przerywa(reszta wartości to śmieciowe) i potem wychodzą różne dziwne wyniki. Sprawdzałem przy pomocy funkcji isalpha(). Niestety to chyba tylko działa gdy wpisujemy wartości typu char jak przypuszczam. Macie może jakiś pomysł i chcieli byście się podzielić jak sobie poradzić z tym problemem.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0
  1. Zabezpieczenie przed wpisywaniem liter
  2. Trzymaj sobie licznik który mówi ile wczytałeś liczb.
Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

No aleee peeewnie taaaaak dłuuuuugo szuuukaaałeeeeeś i nie trafiłeś na ten artykuł:
Zabezpieczenie przed wpisywaniem liter

Albo ten wątek:
http://cpp0x.pl/forum/temat/?id=5428

Lub to:
http://forum.pcformat.pl/C-Zabezpieczenie-przed-wpisaniem-liter-nie-dziala-t

Ewentualnie:
http://www.cplusplus.com/forum/beginner/92098/
http://peb.pl/programowanie/1039386-c-blad-gdy-wpisze-litere-do.html
http://forum.dobreprogramy.pl/czabezpieczenie-przed-wpisaniem-liter-nie-działa-t403100/
(...)


A odnośnie liczby elementów, to tak jak powiedział @Shalom - trzymaj sobie licznik (choć średnią możesz liczyć na bieżąco, a tablicę na samym początku ustawić na najmniejszy możliwy `double`, ale to tak trochę na około).
R1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 22
0

OK, udało się wszystko, dzięki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.