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

Błąd wyświetlania liczb

Object Storage Arubacloud
–1 głos
215 wizyt
pytanie zadane 22 sierpnia 2017 w C i C++ przez Sic Dyskutant (8,510 p.)
edycja 24 sierpnia 2017 przez Arkadiusz Waluk

Witam!

Program zostaje uruchomiony i działa jednak podczas ostatniego wyświetlenia pokazuje się "dziwna" liczba.

#include<iostream>
#include<conio.h>
#include<string>

using namespace std;
class towarzystwo
{
public:
    
    struct bogacze { string nazwiska; double kwota; };
    struct dobroczyncy { string nazwiska1; double hajs; };
};

int main()
{
    cout << "Witam Was wplywy na moje konto\n\n"
         << "Wybierz grupe dobroczyncow: \n"
         <<"1. Bogaci , 2. Biedni\n";
    int  dzialy = 0, i = 0;
    towarzystwo obiekt;

towarzystwo::bogacze wplywy[5];
    wplywy[0] = { "Malinowski", 2500 };
    wplywy[1] = { "Raczkowska", 1000 };
    wplywy[2] = { "Kowalski", 2700 };
    wplywy[3] = { "Korniszonek", 2500 };
    wplywy[4] = { "Listonosz", 5000 };
towarzystwo::dobroczyncy przelewy[5];
    przelewy[0] = { "Maslownik", 500 };
    przelewy[1] = { "Kiszczak", 700 };
    przelewy[2] = { "Browarnik", 2500 };
    przelewy[3] = { "Kiszonek", 250 };
    przelewy[4] = { "Malaria", 2650 };

    cin >> dzialy;
    cout << endl;
    switch (dzialy)
    {
    case 1:
        cout << "Oto najbogatsi dobroczyncy: \n";
        for (; i < 5; i++)
            cout << wplywy[i].nazwiska << " " << wplywy[i].kwota << " zl" << endl;
        break;
    case 2:
        cout << "Oto biedniejsi dobroczyncy: \n";
        for (; i < 5; i++)
            cout << przelewy[i].nazwiska1 << " " << przelewy[i].hajs << " zl" << endl;
        break;
    default:
        cout << "Zly wybor!";
        break;
    }
    cout << "\n\nNajszlachetniejsi dobroczyncy:  \n";
    
    if ((wplywy[5].kwota > 1000) && (przelewy[5].hajs > 1000))
        {
            cout << wplywy[5].kwota << endl << przelewy[5].hajs; // wyswietlenie liczb (problem) ???
        }
    else
            cout << "Szlachetni wymarli!\n";
    
    getch();
    return 0;
}

 

komentarz 22 sierpnia 2017 przez vector Dyskutant (9,200 p.)
towarzystwo::bogacze wplywy[5];
// ...
if((wplywy[5].kwota > 1000) && (przelewy[5].hajs > 1000)) {
// ...
}

Tablica 5-cio elementowa jest indeksowana od 0 do 4 włącznie. pod wplywy[5] znajdują się jakieś śmieci więc nic dziwnego że twój program nie działa

komentarz 22 sierpnia 2017 przez Sic Dyskutant (8,510 p.)
To w jaki sposób określić zakres całej tablicy, dla wszystkich jej elementów?
komentarz 24 sierpnia 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)

Tak na przyszłość: kod na forum wstawiamy w przeznaczone do tego bloczki, jest wtedy znacznie czytelniej.

1 odpowiedź

–1 głos
odpowiedź 24 sierpnia 2017 przez eglaboud Obywatel (1,940 p.)
Zaindeksowałeś w tablicy 5 elementów.

Są to elementy od zera do czterech.

Element nr 5 nie istnieje (to szósty element), więc ja się nie dziwię, że cię wywala.
komentarz 24 sierpnia 2017 przez Sic Dyskutant (8,510 p.)
przywrócone 27 sierpnia 2017 przez Sic
To w jaki sposób określić zakres całej tablicy, dla wszystkich jej elementów?
komentarz 26 sierpnia 2017 przez eglaboud Obywatel (1,940 p.)
ilość elementów - 1

Podobne pytania

0 głosów
1 odpowiedź 616 wizyt
pytanie zadane 31 grudnia 2018 w C i C++ przez Teslum_369 Gaduła (4,190 p.)
0 głosów
1 odpowiedź 108 wizyt
pytanie zadane 17 grudnia 2015 w Java przez Int_main Bywalec (2,850 p.)
+1 głos
0 odpowiedzi 81 wizyt
pytanie zadane 5 czerwca 2017 w PHP przez Bzytek Użytkownik (810 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

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

...