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

question-closed Problem przy switchach.

Object Storage Arubacloud
0 głosów
186 wizyt
pytanie zadane 6 grudnia 2015 w Rozwój zawodowy, nauka, praca przez Munvik Dyskutant (9,350 p.)
zamknięte 6 grudnia 2015 przez Munvik
Otóż mam menu

1. Opcja nr1

2. Opcja nr2.

3. Opcja nr3

Zastosowałem tu funkcję switch

No i gdy klikam 2 to tu również jest opcja switch.

I tu mam case 2:

Wywala mi tu błąd, nie wiem dlaczego... Czy to że istnieje switch w switchu trzeba jakoś zaznaczyć ?
komentarz zamknięcia: Problem rozwiązany

5 odpowiedzi

0 głosów
odpowiedź 6 grudnia 2015 przez Mikrokontroler xD Stary wyjadacz (13,500 p.)
Idę po kryształową kulę i Ci zaraz odpowiem.

Ty nie widzisz gdzie jest błąd patrząc na kod a wymagasz od nas żebyśmy
​bez patrzenia na kod pokazali tobie gdzie jest błąd? Coś nie halo.

A tak na serio wklej tutaj kod. i komunikat jaki się tobie wyświetla.

Pozdrawiam
0 głosów
odpowiedź 6 grudnia 2015 przez gab123 Mądrala (5,230 p.)
Może byś podał kod ? Bo bez kody trudno coś stwierdzić
0 głosów
odpowiedź 6 grudnia 2015 przez DaveM Początkujący (480 p.)

No, koledze chyba się nie przekopiował kod chyba :D ...laugh

0 głosów
odpowiedź 6 grudnia 2015 przez C☺ndzi Stary wyjadacz (12,100 p.)
Moja magiczna kula wyczuwa brak break; i srednika gdzies :D
komentarz 6 grudnia 2015 przez Munvik Dyskutant (9,350 p.)
#include <iostream>
#include <conio.h>

 

using namespace std;

int wybor, wybor2, oceny[10], oceny2[5], oceny3[5], oceny4[5], oceny5[5], oceny6[5], oceny7[5];
string przedmioty[10];
float srednia;

 

int main()
{
  //program pyta o rodzaj obliczen

  //program ma pytac, czy jezeli wybierzemy np srednia ocen z semestru to poprosi nas
  //wprowadzenie ocen z poszczegolnych przedmiotow

  //zas jesli wybierzemy opcje oblicz np srednia dla historii to poprosi nas
  //o oceny pojedyncze

  string przedmioty[]={"Polaka","Geografi","Historii","Instalacji_Elektrycznych","Angielskiego",
  "Rosyjskiego","Maszyn","Religii","Wfu","Matematyki"};

  cout << "Witaj w naszym programie!" << endl;
  cout << "Jesli chcesz obliczyc srednie oceny to zapraszamy do zapoznania sie z menu";
  cout << endl;
  cout << "Menu Glowne";
  cout << "------------------" << endl;
  cout << "1. Oblicz ocene polroczna" << endl;
  cout << "2. Oblicz ocene z wybranego przedmiotu" << endl;
  cout << "3. Plan lekcji" << endl;

  cout << "Wybierz opcje: ";
  cin >> wybor;

  switch(wybor)
  {
     case 1:
              for(int i=0; i<10; i++)
              {
                  cout << i+1 << ". Jaka masz ocene z " <<przedmioty[i]<< " ?: ";
                  cin >> oceny[i];
                  if((oceny[i]<1||oceny[i]>6))
                  {
                      cout << "To nie jest ocena!" <<endl;
                  }
                  srednia +=oceny[i];

              }
              cout << "Twoja srednia to " << srednia/10;
     break;
     case 2:
              cout << "Wybierz przedmiot:" <<endl;     //menu opcji wyliczania ocen z
              cout << "1. Polski" << endl;             //poszczegolnych przedmiotow
              cout << "2. Agnielski" << endl;
              cout << "3. Matematyka" << endl;
              cout << "4. Geografia" << endl;
              cout << "5. Instalacje elektryczne" << endl;
              cout << "6. FIzyka" << endl;
              cin >> wybor2;
     break;

              switch(wybor2)    //opcja 2
                case 1:         //wybor obliczania sredniej z polaka
                    for(int i=1; i<=5; i++)
                    {
                        cout << "Wpisz " << i << " ocene: ";
                        cin >> oceny2[i-1];

                        if((oceny2[i-1]<1||oceny2[i-1]>6))
                        {
                            cout << "To nie jest ocena bydlaku!";
                        }
                        srednia+=oceny2[i-1];            //trzeba pamietac o nazwie blokow!
                    }
                        cout << "Twoja srednia ocena z Polskiego to "<<srednia/5<<" .";
                break;
                case 2:
                    for(int i=1; i<=5; i++)
                    {
                        cout << "Wpisz " << i << " ocene: ";
                        cin >> oceny3[i-1];

                        if((oceny3[i-1]<1||oceny3[i-1]>6))
                        {
                            cout << "To nie jest ocena bydlaku!";
                        }
                        srednia+=oceny3[i-1];            //trzeba pamietac o nazwie blokow!
                    }
                        cout << "Twoja srednia ocena z Angielskiego to "<<srednia/5<<" .";
                 break;
                 case 3:
                     for(int i=1; i<=5; i++)
                    {
                        cout << "Wpisz " << i << " ocene: ";
                        cin >> oceny4[i-1];

                        if((oceny4[i-1]<1||oceny4[i-1]>6))
                        {
                            cout << "To nie jest ocena bydlaku!";
                        }
                        srednia+=oceny4[i-1];            //trzeba pamietac o nazwie blokow!
                    }
                        cout << "Twoja srednia ocena z Matematyki to "<<srednia/5<<" .";
                  break;
                  case 4:
                      for(int i=1; i<=5; i++)
                    {
                        cout << "Wpisz " << i << " ocene: ";
                        cin >> oceny5[i-1];

                        if((oceny5[i-1]<1||oceny5[i-1]>6))
                        {
                            cout << "To nie jest ocena bydlaku!";
                        }
                        srednia+=oceny5[i-1];            //trzeba pamietac o nazwie blokow!
                    }
                        cout << "Twoja srednia ocena z Geografii to "<<srednia/5<<" .";
                   break;
                   case 5:
                      for(int i=1; i<=5; i++)
                    {
                        cout << "Wpisz " << i << " ocene: ";
                        cin >> oceny6[i-1];

                        if((oceny6[i-1]<1||oceny6[i-1]>6))
                        {
                            cout << "To nie jest ocena bydlaku!";
                        }
                        srednia+=oceny6[i-1];            //trzeba pamietac o nazwie blokow!
                    }
                        cout << "Twoja srednia ocena z Inst. Elekt. to "<<srednia/5<<" .";
                   break;
                   case 6:
                      for(int i=1; i<=5; i++)
                    {
                        cout << "Wpisz " << i << " ocene: ";
                        cin >> oceny7[i-1];

                        if((oceny7[i-1]<1||oceny7[i-1]>6))
                        {
                            cout << "To nie jest ocena bydlaku!";
                        }
                        srednia+=oceny7[i-1];            //trzeba pamietac o nazwie blokow!
                    }
                        cout << "Twoja srednia ocena z Fizyki to "<<srednia/5<<" .";
                   break;

 

 

 

 

  }

 

  return 0;
}

A błędu to

error: duplicate case value  (przy case 2 w switchu(wybor2))

error: previously used here (przy case 2 w switchu(wybor))

 

To kod, nie potrafie tego zrobić tak, żeby okno było mniejsze :D Jak ktoś podpowie edytuje.

komentarz 6 grudnia 2015 przez C☺ndzi Stary wyjadacz (12,100 p.)
A pozamykaj switche w klamry {}. Pewnie chodzi o to, że switch(wybor) "bieże do siebie" case 1 i case 2 ze switch(wybor2).
komentarz 6 grudnia 2015 przez Munvik Dyskutant (9,350 p.)
Dodam, że przy użyciu if'ów jako zamiennik switch(wybor2) działa.

Czyli domyślam się, że występowanie switchow w switchu trzeba jakoś inaczej oznaczyć.

Bo miałem case 2 w case 2
komentarz 6 grudnia 2015 przez Munvik Dyskutant (9,350 p.)
Ok. czekaj zobaczę :D
komentarz 6 grudnia 2015 przez writen Nałogowiec (29,060 p.)
Rozwiązanie: patrz moja odpowiedź.
komentarz 6 grudnia 2015 przez C☺ndzi Stary wyjadacz (12,100 p.)

Zrób tak jak ci pisałem, dodaj klamry,o tak:
 

switch(wybor)
{ <----
case 1: (....)

case 2: 
            switch(wybor2)
            { <---
            case 1: (...)
            case 2: (...)
            } <----

} <---

 

komentarz 6 grudnia 2015 przez Munvik Dyskutant (9,350 p.)
Condzi działa dzięki Ci !
0 głosów
odpowiedź 6 grudnia 2015 przez writen Nałogowiec (29,060 p.)
Gdzie chciałeś wstawić drugiego switcha? Do case: 2? A widzisz gdzie go wstawiłeś? Po słówku break; czyli defacto poza case.

Druga sprawa. Drugi switch nie posiada ciała, a raczej klamer, które te ciało wyznaczają.
komentarz 6 grudnia 2015 przez Munvik Dyskutant (9,350 p.)
Tak, teraz działa :D Już problem rozwiązany

Podobne pytania

0 głosów
1 odpowiedź 153 wizyt
pytanie zadane 21 kwietnia 2020 w C i C++ przez Łosiasty Nowicjusz (190 p.)
0 głosów
1 odpowiedź 118 wizyt
pytanie zadane 3 lutego 2016 w C i C++ przez d.cott Nowicjusz (120 p.)
0 głosów
1 odpowiedź 97 wizyt
pytanie zadane 5 listopada 2015 w C i C++ przez Michał Gibas Pasjonat (19,610 p.)

92,615 zapytań

141,465 odpowiedzi

319,782 komentarzy

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

...