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

Szkoła Programowania zadanie 6.2

Object Storage Arubacloud
+1 głos
672 wizyt
pytanie zadane 26 lutego 2016 w C i C++ przez Iras Obywatel (1,800 p.)

Cześć,

Robie zadanie 2 z 6 rozdziału z ksiażki Prata i niestety niewiem dlaczego mój kod nie wykonuje zadania poprawnie choć wydaje mi się że tak powinien on wyglądać?

Zadanie

Napisz program odczytujący do 10 datków do tablicy wartości double(ewentualnie do obiektu klasy array, zależnie od upodobań i możliwości posiadanego kompilatora). Program ma kończyć wczytywanie danych po podaniu wartości nieliczbowej. Na koniec program ma pokazać średnią liczb oraz podać te wartości z tablicy, które od tej średniej są większe 

 

#include <iostream>
#include <cctype>
 int main()
 {
      using namespace std;
      const int array=10;
      double number[array];double arr_result[array];
      double average=0.0,total=0.0;
      for(int i=0;i<array;i++){
        cin>>number[i];
        if(isdigit(number[i])){
            total+=number[i];
            average+=1;
            arr_result[i]=number[i];
        }
        else if(isalpha(number[i])){
        cout<<(double)total/average<<endl;
            for(int j=0;j<average;j++){
                if(total/average<arr_result[j])
                cout<<arr_result[j];
            }
      }

      }
      cout<<total/average<<endl;
            for(int j=0;j<average;j++){
                if(total/average<arr_result[j])
                cout<<arr_result[j];
            }

      return 0;
 }

 

1 odpowiedź

+1 głos
odpowiedź 26 lutego 2016 przez esp0x309 Użytkownik (510 p.)
wybrane 4 czerwca 2017 przez Iras
 
Najlepsza

Cześć,

Zgodnie z dokumentacją funkcje isdigit oraz isalpha (zresztą jak wszystkie pozostałe z <cctype>) jako argument przyjmują pojedyńczy znak (char). Dlatego na przykład poniższy kod zwróci na wyjściu tylko "51" bo 51 dec to cyfra 3, a 115 to litera s. http://www.cplusplus.com/reference/cctype/

#include <iostream>
#include <cctype>
int main()
{
	using namespace std;

	if (isdigit(51)) {
		cout << "51";
	}
	if (isdigit(115)) {
		cout << "115";
	}
	return 0;
}

komentarz 28 lutego 2016 przez Iras Obywatel (1,800 p.)
Czyli jeśli wykonam rzutowanie to powinno się wykonać bez problemu?

Podobne pytania

0 głosów
1 odpowiedź 316 wizyt
pytanie zadane 14 grudnia 2015 w C i C++ przez varazand Początkujący (320 p.)
0 głosów
1 odpowiedź 157 wizyt
pytanie zadane 2 sierpnia 2017 w C i C++ przez Mr_ZuXii Nowicjusz (190 p.)
0 głosów
1 odpowiedź 148 wizyt

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

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

...