Zadanie -tablicowanie ciągu roznego rodzaju albo inna metoda rozwiązania zad, help
Witam, robię poniższe zadanie:
"Przeczytaj ciąg liczb, kończąc czytanie na znaku wykrzyknika (!) Wydrukuj wartość maksymalną, minimalną i średnią, ze wszystkich przeczytanych liczb. "
Mam póki co problem, chciałem stablicować stringa jednak z tego co przeczytałem okazało się iż można tablicować tylko ciągi jednego rodzaju (albo inty albo chary, etc.) Może ktoś wie jak można inaczej zrobić to zadanie bo mój pomysł był taki:
-zrobić wszystko za pomocą stringa;
-sprawdzać każdą kolejny znak (funkcją isdigit)
-w przypadku kiedy isdigit zwracałby 0 sprawdzać czy jest '!' jeżeli tak, zakończyć dalsze sprawdzanie
-jeżeli byłby to inny znak powtórzyć prośbę o podanie poprawnego ciągu liczb zakończonego !
- na bierząco porównywać każdą liczbę z c (najmniejsza liczba)
- na bierząco porównywać każdą liczbę z b (największa liczba)
- na bierząco sumować wszystkie liczby a na sam koniec podzielić je przez długoś stringa
Poniżej załączam swój kod, jest zły ale chcę pokazać, że spędziłem nad tym parę godzin zamiast czekać na gotowca. Z tym, że zaciąłem się na tym tablicowaniu.
Ps wszystko piszę w vimie (na feodrze 16) kompiluję w g++ o ile to zmienia cokolwiek.
Witam, robię poniższe zadanie:
"Przeczytaj ciąg liczb, kończąc czytanie na znaku wykrzyknika (!) Wydrukuj wartość maksymalną, minimalną i średnią, ze wszystkich przeczytanych liczb. "
Mam póki co problem, chciałem stablicować stringa jednak z tego co przeczytałem okazało się iż można tablicować tylko ciągi jednego rodzaju (albo inty albo chary, etc.) Może ktoś wie jak można inaczej zrobić to zadanie bo mój pomysł był taki:
-zrobić wszystko za pomocą stringa;
-sprawdzać każdą kolejny znak (funkcją isdigit)
-w przypadku kiedy isdigit zwracałby 0 sprawdzać czy jest '!' jeżeli tak, zakończyć dalsze sprawdzanie
-jeżeli byłby to inny znak powtórzyć prośbę o podanie poprawnego ciągu liczb zakończonego !
- na bierząco porównywać każdą liczbę z c (najmniejsza liczba)
- na bierząco porównywać każdą liczbę z b (największa liczba)
- na bierząco sumować wszystkie liczby a na sam koniec podzielić je przez długoś stringa
Poniżej załączam swój kod, jest zły ale chcę pokazać, że spędziłem nad tym parę godzin zamiast czekać na gotowca. Z tym, że zaciąłem się na tym tablicowaniu.
Kod:
#include<iostream>
using namespace std;
int main()
{
string txt;
int a,b=0,c=8,s=0,n;
cout<<"Podaj ciag liczb, zakoncz ciag znakiem '!'"<<endl;
cin>>txt;
for(n=txt.size();n>0;n--)
{
a=txt.size()-n;
cout<<a<<"okrazenie"<<endl;
if(txt[a]>b){b=txt[a];cout<<b<<endl;}
if(txt[a]<c){c=txt[a];cout<<c<<endl;}
}
cout<<"Najwieksza liczba ciagu = "<<b<<endl;
cout<<"Najmniejsza liczba ciagu = "<<c<<endl;
cout<<"Srednia ciagu = "<<s<<endl;
cout<<"a ="<<a;
return 0;
}
Ostatnio edytowane przez moderatora: