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

C++ błąd w kodzie case

Object Storage Arubacloud
0 głosów
268 wizyt
pytanie zadane 19 kwietnia 2020 w C i C++ przez KW27 Nowicjusz (150 p.)

Witam wyskakuje mi błąd w pierwszym case. Mógłby mi ktoś napisać dlaczego? Ewentualnie jak będą jeszcze jakieś błędy będę wdzięczny za podpowiedź.

#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
int liczba[3],s,l;
int main()
{
    cout << "wYLOSOWAŁEM 4 LICZBY ZGADNIJ CHOCIAŻ JEDNA" << endl;
    srand(time(NULL));
    s=rand();
    liczba[0]=(s+2)%10;
    liczba[1]=(s*liczba[0]+2)%10;
    liczba[2]=(s*liczba[1]+2)%10;
    liczba[3]=(s*liczba[2]+2)%10;
    cout<<"podaj liczbe";
    cin>>l;
    switch(l)
    {
    case liczba[0];
        cout<<"To jest 1 liczba";
         break;
    case liczba[1]:
        cout<<"To jest 2 liczba";
         break;
    case liczba[2]:
        cout<<"To jest 3 liczba";
         break;
    case liczba[3]:
        cout<<"To jest 4 liczba";
        break;
    default:
        cout<<nie zgadles;
    }

    return 0;
}

2 odpowiedzi

0 głosów
odpowiedź 19 kwietnia 2020 przez LuQ232 Mądrala (7,200 p.)
wybrane 19 kwietnia 2020 przez KW27
 
Najlepsza

Nie możesz tak zapisać switcha. Podczas kompilacji program jawnie musi znać wartości case.

switch(l)
    {
    case 1:
        cout<<"To jest 1 liczba";
         break;
    case 375:
        cout<<"To jest 2 liczba";
         break;
 
    default:
        cout<<nie zgadles;
    }

Można tak jak powyżej. Nie możesz odwoływać się to tablicy której wartości podczas kompilacji są nieznane.

0 głosów
odpowiedź 19 kwietnia 2020 przez amelia.cpp Obywatel (1,860 p.)
Jest średnik zamiast dwukropka
komentarz 19 kwietnia 2020 przez KW27 Nowicjusz (150 p.)
Poprawiłem ale nadal nie działa
komentarz 19 kwietnia 2020 przez amelia.cpp Obywatel (1,860 p.)
w case?
komentarz 19 kwietnia 2020 przez KW27 Nowicjusz (150 p.)
Tak
komentarz 19 kwietnia 2020 przez amelia.cpp Obywatel (1,860 p.)
W default po cout nie masz cudzysłowiu.
możesz też spróbować zrobić

int liczba[3];
int l,s;
komentarz 19 kwietnia 2020 przez KW27 Nowicjusz (150 p.)
nic nie dało
komentarz 19 kwietnia 2020 przez amelia.cpp Obywatel (1,860 p.)
Jaki to błąd?
komentarz 19 kwietnia 2020 przez KW27 Nowicjusz (150 p.)
|20|error: the value of 'liczba' is not usable in a constant expression|
1
komentarz 19 kwietnia 2020 przez DawidK Nałogowiec (37,910 p.)
W case nie możesz umieścić liczby, która może ulec zmianie np (liczba[0]) takie porówninie możeż wykonac za pomocą ifów
komentarz 19 kwietnia 2020 przez KW27 Nowicjusz (150 p.)
Dzięki

Podobne pytania

0 głosów
3 odpowiedzi 320 wizyt
pytanie zadane 9 lipca 2016 w C i C++ przez Boro13_2015 Nowicjusz (190 p.)
0 głosów
2 odpowiedzi 292 wizyt
pytanie zadane 11 maja 2023 w C# przez marcin20a Początkujący (280 p.)
0 głosów
2 odpowiedzi 3,463 wizyt

92,757 zapytań

141,679 odpowiedzi

320,437 komentarzy

62,101 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

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!

...