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

int zmienna[i] blad programu po kompilacji

Object Storage Arubacloud
0 głosów
260 wizyt
pytanie zadane 4 grudnia 2016 w C i C++ przez qlucha Obywatel (1,790 p.)
  int kod_autoryzacji[1];
     kod_autoryzacji[0]=7743;
     cout << "kod autoryzacji : " ;
     cin >> kod_autoryzacji[1];
 
    if (kod_autoryzacji[1]==kod_autoryzacji[0]) 
        cout<<"komunikat prawidlowe porownanie"<<endl;
    else exit(0);

Kompilator prawidłowo skompilował fragment kodu

Process terminated with status 0 (0 minute(s), 5 second(s))
0 error(s), 0 warning(s) (0 minute(s), 5 second(s))

 BAWIE SIE TYM KODEM DLA NAUKI ZMIENIAJAC PARE RZECZY ZEBY ZOBACZYC JA KTO WSZYSTKO FUNKCJONUJE PRAWIDŁOWO , I POJAWIŁ SIE PROBLEM. 

wiem że lepiej użyć zmiennej string , ale czemu w trakcie porównania w funkcji warunkowej  

tych dwoch zmiennych int zmienna[i] W TRAKCJIE DZIAŁANIA PROGRAMU DOCHODZI DO BŁEDU ???
 

 

komentarz 4 grudnia 2016 przez marioosu Dyskutant (9,260 p.)
Gdy będziesz pisał uppercasem to nie znaczy, że ktoś szybciej Ci pomoże ;) a nie czyta się tak sformatowanego tekstu przyjemnie ;)
1
komentarz 4 grudnia 2016 przez qlucha Obywatel (1,790 p.)

dzieki za pomoc i bede mial na wzgledzie pisanie małymi literami, 

prosty blad ze zmeczenia, ucze sie dopiero od miesiaca C++ 

dzieki za wyrozumiałość, mam nadzieje ze nie porównujecie mnie do wiadomo kogo >>

hehewinkyes

2 odpowiedzi

+1 głos
odpowiedź 4 grudnia 2016 przez marioosu Dyskutant (9,260 p.)
Zadeklarowałeś tablicę o rozmiarze 1 (int kod_autoryzacji[1];), a masz przecież 2 elementy (o indeksie 0 oraz 1) może w tymi miejscu leży problem - spróbuj int kod_autoryzacji[2];
+1 głos
odpowiedź 4 grudnia 2016 przez plkpiotr Stary wyjadacz (12,420 p.)

Numerowanie indeksów tablicy rozpoczyna się od zera, w odróżnieniu od deklarowania rozmiaru tablicy, które określamy "naturalną" wielkością...

int tab[3]; // tablica trzech elementów
tab[0] = 1; // pierwszy element
tab[1] = 2; // drugi element
tab[2] = 3; // trzeci element

Zadeklarowałeś tablicę o jednym elemencie, a próbujesz się dostać poprawnie do pierwszego i niepoprawnie do drugiego elementu.

komentarz 4 grudnia 2016 przez qlucha Obywatel (1,790 p.)
dzieki za odpowiedz znalazlem blad , myslałem o naprawde bardziej skomplikowanym

problemie niz ten blad ktory popelniełem ze zmeczenia, ale na błedach najlepiej sie uczy

dzieki za pomoc.
komentarz 4 grudnia 2016 przez plkpiotr Stary wyjadacz (12,420 p.)
Nie ma sprawy ; )
Wszyscy tak mamy, że czasami proste rzeczy wydają się trudnymi : )
komentarz 4 grudnia 2016 przez qlucha Obywatel (1,790 p.)

trzymając sie tematu to nad czym dzisiaj pracuje, mam jeszcze jedno zagadnienie ktore mnie interesuje, natomiast :

jesli 

string login="a";         to   if (login[0]==97) daje true   //porownanie do tablicy ASCII  

i to  dziala 

dla

int  zmienna[2];

zmienna[0]=7745;    

O co mi chodzi według zdobytej mojej wiedzy , dla string zmienna 

wartosci sa przechowywane w komórkach w pamieci ram zapisane jako pojedyncze

znaki z Talicy ASCII do których mozemy sie odwołać , porównując coś 

a dla zmiennej int?????

w jaki sposób sa zapisywane wartosci liczbowe jako liczba całkowita 

w szufladkach ram???? i czy możemy sie do nich odwołać w trakcie porównania 

tak samo jak analogicznie do Tablicy ASCII ???

komentarz 4 grudnia 2016 przez plkpiotr Stary wyjadacz (12,420 p.)
edycja 4 grudnia 2016 przez plkpiotr

Nie do końca, te ogólniki o których napisałeś są prawdziwe. Każdy typ wbudowany całkowitoliczbowy to tak naprawdę uporządkowany ciąg 0 i 1 w systemie dwójkowym w zależności od pamięci (ilość bitów/bajtów) jaką możemy przeznaczyć na dany typ. Chcąc porównać int'y porównujemy ich wartości, czyli sprawdzamy, czy jeden ciąg jedynek i zer jest taki sam jak drugi. W składni C++ wystarczy, że porównamy ich wartości operatorem porównania. Podobnie char, bo to tak naprawdę taki "int" tylko że mniejszy  i umożliwiający nam kodowanie znaków, stąd nazwa typ znakowy (pod konkretną liczbą konkretny znak)

Nie mieszałbym do tego string'a, bo to jest już obiekt, czyli coś większego niż typ wbudowany.

komentarz 4 grudnia 2016 przez qlucha Obywatel (1,790 p.)

dzieki za odpowiedz , bede musiał chwie to przemyśleć jak sie ,to odbywa na niskim poziomie, wzgledem  zarezerwowanych typów zmiennych na dane ,

dzieki ,yes

komentarz 4 grudnia 2016 przez plkpiotr Stary wyjadacz (12,420 p.)

Spoko ; ) Jednak wg mnie póki co nie masz co sobie tym głowy zawracać co tam się dzieje niżej w pamięci, jeżeli od miesiąca uczysz się C++. Jedyne co z tej dziedziny może Ci się przydać to ogólny pogląd na zapis liczb stałoprzecinkowych (całkowitoliczbowych - o, których pisaliśmy) oraz zmiennoprzecinkowych (mantysa, cecha, baza), ale w jaki sposób niski poziom radzi sobie przy ich zapisie możesz spokojnie odpuścić, poważnie : )

Podobne pytania

0 głosów
2 odpowiedzi 225 wizyt
pytanie zadane 11 listopada 2017 w C i C++ przez scoorix Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 1,558 wizyt
0 głosów
0 odpowiedzi 236 wizyt
pytanie zadane 24 października 2022 w C i C++ przez piotr_domanski Bywalec (2,080 p.)

92,555 zapytań

141,402 odpowiedzi

319,539 komentarzy

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

...