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

Maksymalna liczba ciagu n-elementowego

Object Storage Arubacloud
0 głosów
871 wizyt
pytanie zadane 24 października 2017 w C i C++ przez dorota17 Nowicjusz (160 p.)

Mam obliczyć największą liczbę, o nieparzystej liczbie cyfr w ciągu n-elementowym. Poniżej przedstawiam co udało mi się zrobić. Nie wiem jak znaleźć tą największa. Chciałem porównać te wczytywanie liczby, ale nie wiem jak je zapisać bo po przejściu pętli "znikaja", jak je zapisać po wczytaniu cin ? Najlepiej jakieś rozwiązanie bez użycia tablic.

#include <iostream>

using namespace std;
string liczba;
int n,d;

int main()
{
    cout << "Podaj liczbe wyrazow ciagu: ";
    cin>>n;
    for(int i=1;i<=n;i++)
   {   cout<<endl<<endl;
    cout<<"Podaj "<<i<<" wyraz ciagu: ";
    cin>>liczba;
       d=liczba.length();
    cout<< " dlugosc "<<  d<<endl ;
    if((d%2)!=0)
    {
        cout<<" liczba o nieparzystej liczbie cyfr" <<endl;

   



        }


    }




    return 0;
}

 

1
komentarz 24 października 2017 przez criss Mędrzec (172,590 p.)
Wy celowo rozwalacie wszystkie wcięcia jak najbardziej się da i wrzucacie miliard niepotrzebnych newlineów? Skąd to się bierze? No chyba celowo, bo przez przypadek tego się raczej nie da zrobić?

3 odpowiedzi

+2 głosów
odpowiedź 25 października 2017 przez Bondrusiek Maniak (61,370 p.)

Witam,

Chciałem porównać te wczytywanie liczby, ale nie wiem jak je zapisać

Najlepiej do takiego typu problemu użyj tablic(http://cpp0x.pl/kursy/Kurs-C++/Tablice-zmiennych/298). Tablice to struktura danych przechowywanych obok siebie. Znakomicie nadają się do przechowywania dużej ilości danych tego samego typu i można się łatwo odwołać do żądanego elementu. Np do przechowywania elementów ciąg matematycznego.

bo po przejściu pętli "znikaja", jak je zapisać po wczytaniu cin

Dowiedz się również o zakresach zmiennych. Ogólnie jest taka zasada że nie powinno się używać w programie zmiennych globalnych czyli takich, które są zdefiniowane poza funkcją main. U Ciebie to :

string liczba;
int n,d;

Ostatni uwaga to sposób formatowania kodu oraz nazwania zmiennych. Staraj się używać wcięć(tabulatorów) dla poszczególnych bloków kodu np. to co jest w if, for oraz używaj precyzyjniejszych nazw zmiennych.

int iloscElementow;
//zamiast
int n;

Najlepiej jakieś rozwiązanie bez użycia tablic.

Może to Ci pomoże:

#include <iostream>

using namespace std;


int main(void)
{
    string liczba;
    int maxLiczba;
    int zmiennaPomocnicza;
    int n;

    cout << "Podaj liczbe wyrazow ciagu: ";
    cin >> n;
    cout << "Podaj 1 wyraz ciagu : ";
    cin >> liczba;
    if((liczba.length() % 2) != 0)
    {
        maxLiczba = stoi(liczba);
    }
    else
    {
        maxLiczba = 0;
    }
    for(int i = 2; i <= n; i++)
    {
        cout << "Podaj " << i << " wyraz ciagu: ";
        cin >> liczba;
        zmiennaPomocnicza = stoi(liczba);
        if( (liczba.length()%2) != 0)
        {
            cout << "Liczba o nieparzystej liczbie cyfr " << endl;
            if(zmiennaPomocnicza > maxLiczba)
            {
                maxLiczba = zmiennaPomocnicza;
            }
        }
    }
    if(maxLiczba)
    {
        cout << "Nie podales liczbo o nieparzystej ilosci cyfr " << endl;
    }
    else
    {
        cout << "Najwieksza liczba o nieparzystej ilosci cyfr to : " << maxLiczba << endl;
    }

    return 0;
}

 

+1 głos
odpowiedź 24 października 2017 przez Frendom Pasjonat (18,900 p.)
Zawsze mozesz zrobic sobie zmienna pomocnicza, gdzie bedziesz przechowywal obecnie najwieksza liczbe. Po kazdym podaniu nowej liczby mozesz sprawdzic czy jest ona wieksza od co znajduje sie w zmiennej pomocniczej. Jezeli tak to ja po prostu wymienisz. Oczywiscie po drodze sprawdz czy posiada ona parzysta ilosc znakow itd.
0 głosów
odpowiedź 24 października 2017 przez Wiciorny Ekspert (270,170 p.)
ja wgl nie rozumiem twojego programu ... Jaki to jest ciag? Dlaczego wczytujemy dane po kolei? Nie mozesz pamiętać poprzednika skoro go nie zapiszesz, wiec nie zdecydujesz która z liczb jest największa

Podobne pytania

0 głosów
1 odpowiedź 206 wizyt
pytanie zadane 1 września 2020 w C i C++ przez magda_19 Gaduła (3,080 p.)
0 głosów
1 odpowiedź 2,605 wizyt
pytanie zadane 28 kwietnia 2020 w C i C++ przez Atman Użytkownik (810 p.)
0 głosów
2 odpowiedzi 579 wizyt
pytanie zadane 17 lutego 2020 w C i C++ przez Biedrzyk Nowicjusz (180 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

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

...