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

C++ - jak odwołać się do zmiennej strukturalnej za pomocną zmiennej char

Object Storage Arubacloud
0 głosów
298 wizyt
pytanie zadane 4 stycznia 2022 w C i C++ przez panwkapeluszu Nowicjusz (200 p.)

Hej

Mam problem głupi i nie mogę wpaść na to jak to zrobić:

Otóż w programie mam zdefiniowaną strukturę X (np posiada ona w strukturze np. int rozmiar) 

structure X {
int rozmiar;
};

do której przypisuje trzy zmienne które mają nazwę: A, B, C. Im na początku programu przypisuje normalnie dane za pomocą cin.

i mam problem otóż chce napisać funkcję aby sumować rozmiar 2 zmiennych wybranych przez użytkownika zdefiniowanych wcześniej A, B lub C

no to zacząłem:

char dodawanie1;
cin>>dodawanie1;
char dodawanie2;
cin>>dodawanie2;

i przypuśćmy, że chce dodać rozmiar zmiennej A i B więc jakbym na sztywno chciałbym to zrobić to byłoby

int wynik = A.rozmiar + B.rozmiar

ale ja chce uzyskać taki efekt aby zrobić tak:

int wynik = dodawanie1.rozmiar + dodawanie2.rozmiar

tylko problem jest, że nie wiem jak to zrobić. Codeblocks wywala mi błędy, próbowałem także z pojedynczym cudzysłowiem dać te zmienne ' ' ale dalej nie działa.

 

 

 

 

1 odpowiedź

0 głosów
odpowiedź 4 stycznia 2022 przez j23 Mędrzec (194,920 p.)
wybrane 4 stycznia 2022 przez panwkapeluszu
 
Najlepsza
    X dodawanie[3];
    ...

    int wynik = dodawanie[0].rozmiar + dodawanie[1].rozmiar;

 

komentarz 4 stycznia 2022 przez panwkapeluszu Nowicjusz (200 p.)
struct struktura_tablicy
{
    //szerokosc
    int rozmiarx;
    //wysokosc
    int rozmiary;

    float dane[10][10];
};

int main(){
struktura_tablicy tablica[3] ;

....

    cout<<"Wybierz tablice(1, 2, 3)"<<endl;
    int dodawanie1;
    cin>>dodawanie1;
    dodawanie1=dodawanie1-1;
    cout<<"Wybierz tablice(1, 2, 3)"<<endl;
    int dodawanie2;
    cin>>dodawanie2;
    dodawanie2=dodawanie2-1;

    int szerokosc, wysokosc;
//sprawdzanie która tablica ma większą wysokość i szerokość

    if (tablica(dodawanie1).rozmiarx>tablica(dodawanie2).rozmiarx)
        szerokosc=tablica(dodawanie1).rozmiarx;
    else
        szerokosc=tablica(dodawanie2).rozmiarx;

     if (tablica(dodawanie1).rozmiary> tablica(dodawanie2).rozmiary)
        wysokosc= tablica(dodawanie1).rozmiarx;
    else
        wysokosc= tablica(dodawanie2).rozmiary;

No to próbowałem właśnie zamiast liter to użyć liczb tak jak napisałeś ale pokazuje mi błąd " '' 'tablica' cannto be user as a function w tych if'ach sprawdzających wysokość i szerokość

ważne, że te tablice muszę mieć zapisane w strukturze a nie jako zwykle tablice

komentarz 4 stycznia 2022 przez Oscar Nałogowiec (29,290 p.)
Użyj [] zamiast ().

tablica[dodawanie2]
komentarz 4 stycznia 2022 przez panwkapeluszu Nowicjusz (200 p.)

Ajjj faktycznie głupi błąd, dzięki, już działa smiley jeszcze tylko muszę wymyśleć do perfekcji jak to może zrobić na nazwach zmiennych A, B C

komentarz 4 stycznia 2022 przez Oscar Nałogowiec (29,290 p.)
Dwa sposoby: - jeśli to mają być nazwy jednoznakowe (char) to też możesz ich użyć jako indeksów w tablicy, tylko to będą dość duże wartości i tablica musiałaby mieć z 256 pozycji a tylko 3 użyte. W jakimś szczególnym przypadku np. A, B i C dało by się to jeszcze zrobić optymalnie używając jako indeksu wyrażenia typu dodawanie1-'A'. ale musisz uważać na małe/wielkie litery.

Tak ogólnie to mapa - w C++ jest gotowy template std::map który umożlwia "indeksowanie" napisami. Oczywiście daje się to napisać "ręcznie" ale to już tak średniozaawansowany poziom.

 

PS. Oczywiście pomijam oczywiste rozwiazania z serią if-ów.

Podobne pytania

0 głosów
2 odpowiedzi 3,071 wizyt
pytanie zadane 1 stycznia 2019 w C i C++ przez Drax658 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 107 wizyt
pytanie zadane 19 stycznia 2020 w C i C++ przez kacper1445 Gaduła (4,880 p.)
+1 głos
3 odpowiedzi 259 wizyt
pytanie zadane 13 stycznia 2021 w C i C++ przez Adamek185wp Obywatel (1,280 p.)

92,566 zapytań

141,419 odpowiedzi

319,604 komentarzy

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

...