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

question-closed C++ Switch w switchu

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
1,468 wizyt
pytanie zadane 12 listopada 2017 w C i C++ przez Szczena Nowicjusz (160 p.)
zamknięte 17 listopada 2017 przez Szczena

Witam!
Jestem początkującym programistą, jeśli mogę się tak nazwać, bo w zasadzie robię to od kilku miesięcy za sprawą lekcji informatyki w klasie 2 licum. Otóż miałem zrobić uniwersalny kalkulator obliczający rzeczy podane nam przez nauczycielkę. Jedną z tych rzeczy chciałem zrobić w switchu, a ta z kolei znajdowała by się w innym switchu. Stąd pytanie czy tak w ogóle można? Otóż program wysypuje się właśnie w tym miejscu. Otóż po wybraniu opcji numer 11 program po prostu zaczyna liczyć i daje jakiś wynik. Gdy zmieniłem drugą zmienną w switchu z CHAR na INT program widzi tylko 1 opcje z 4 i wykonuję tylko ja. Poniżej zamieszczam link do pastebin'a. Mam nadzieje, że dobrze wytłumaczyłem problem i liczę że uzyskam pomoc smiley.

https://pastebin.com/FJnf1HMR

komentarz zamknięcia: Naprawiłem problem samemu

2 odpowiedzi

0 głosów
odpowiedź 12 listopada 2017 przez obl Maniak (51,300 p.)
edycja 12 listopada 2017 przez obl

Używasz zmiennych, które nie zostały zainicjalizowane wartością, poza tym po co w funkcji:

float srednia(float a, float n)
{
    float suma=0;
    float sr;
    cout<<"podaj ile liczb potrzebne do sredniej "<<endl;
    cin>>n;
    for(int i=0; i<n; i++)
    {
        cout<<"podaj liczby do sredniej: "<<endl;
        cin>>a;
        suma+=a;
 
 
    }
sr= suma/n;
    return sr;
 
}

ci te argumenty a, i b skoro je inicjalizujesz w jej wnętrzu?

Lepiej to zrobić tak:

float srednia()
{
    float a, n;
    float suma=0;
    float sr;
    cout<<"podaj ile liczb potrzebne do sredniej "<<endl;
    cin>>n;
    for(int i=0; i<n; i++)
    {
        cout<<"podaj liczby do sredniej: "<<endl;
        cin>>a;
        suma+=a;
 
 
    }
sr= suma/n;
    return sr;
 
}

To samo dotyczy pozostałych twoich funkcji.

Edit:

Poza tym case '11' nie zadziała ci tak jak powinno, bo przecież y jest typu char więc przechwyci jeden znak a nie dwa znaki. Wpiszesz dwa znaki czyli 11 to jeden zostanie zdjęty i przypisany do y-ka a drugi zostanie zdjęty przy kolejnym cin-ie.

komentarz 12 listopada 2017 przez Szczena Nowicjusz (160 p.)
Tak jak już mówiłem próbowałem inaczej pisać casy, albo zmienić typ na int. Niestety program dalej się sypie i widzi tylko jedną możliwość pod numerem 11
komentarz 12 listopada 2017 przez obl Maniak (51,300 p.)
Ale ten drugi switch to nowa lista wyboru więc może zaczynać się od 1 wzwyż.
komentarz 12 listopada 2017 przez Szczena Nowicjusz (160 p.)
Wciąż dzieje się to samo
0 głosów
odpowiedź 17 listopada 2017 przez Szczena Nowicjusz (160 p.)
Okej, okazało się że klamry były źle postawione. Wszystko zrobione, zamykam temat

Podobne pytania

0 głosów
1 odpowiedź 1,068 wizyt
0 głosów
0 odpowiedzi 241 wizyt
pytanie zadane 16 października 2016 w C i C++ przez Jakub Olszak Użytkownik (540 p.)
0 głosów
3 odpowiedzi 808 wizyt
pytanie zadane 19 marca 2017 w C i C++ przez akiihombre Początkujący (250 p.)

93,187 zapytań

142,203 odpowiedzi

322,023 komentarzy

62,513 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2581p. - dia-Chann
  2. 2537p. - Łukasz Piwowar
  3. 2528p. - Łukasz Eckert
  4. 2514p. - CC PL
  5. 2445p. - Łukasz Siedlecki
  6. 2443p. - rucin93
  7. 2252p. - Tomasz Bielak
  8. 2201p. - Michal Drewniak
  9. 2156p. - Marcin Putra
  10. 2152p. - Adrian Wieprzkowicz
  11. 2105p. - Mikbac
  12. 1941p. - Anonim 3619784
  13. 1733p. - rafalszastok
  14. 1480p. - Michał Telesz
  15. 1469p. - ssynowiec
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!

...