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

Maksymalna liczba ciagu n-elementowego

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
1,083 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,440 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 (278,710 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ź 270 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ź 3,293 wizyt
pytanie zadane 28 kwietnia 2020 w C i C++ przez Atman Użytkownik (810 p.)
0 głosów
2 odpowiedzi 655 wizyt
pytanie zadane 17 lutego 2020 w C i C++ przez Biedrzyk Nowicjusz (180 p.)

93,191 zapytań

142,206 odpowiedzi

322,040 komentarzy

62,518 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2817p. - dia-Chann
  2. 2769p. - Łukasz Piwowar
  3. 2759p. - Łukasz Eckert
  4. 2738p. - CC PL
  5. 2704p. - Tomasz Bielak
  6. 2678p. - Łukasz Siedlecki
  7. 2666p. - rucin93
  8. 2536p. - Mikbac
  9. 2485p. - Marcin Putra
  10. 2475p. - Adrian Wieprzkowicz
  11. 2418p. - Michal Drewniak
  12. 2239p. - Michał Telesz
  13. 2156p. - Anonim 3619784
  14. 1733p. - rafalszastok
  15. 1650p. - Mariusz Fornal
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...