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

C++, problem z zadaniem Kalkulator 1/Calc

Mały hosting, OGROMNE możliwości
–3 głosów
953 wizyt
pytanie zadane 16 marca 2017 w SPOJ przez Konrad Kurczyński Użytkownik (580 p.)
edycja 17 marca 2017 przez Konrad Kurczyński

string zestawdanych;
float wynik;
cin>>zestawdanych;
if (zestawdanych[0] = "+")
{
 wynik = zestawdanych[2]+zestawdanych[4]
{
(...)
  

Błąd wyskakuje przy powyższym kodzie, adres zadania: http://pl.spoj.com/problems/CALC/ 

2
komentarz 16 marca 2017 przez tangarr Mędrzec (155,140 p.)
i== <-- serio?
komentarz 17 marca 2017 przez Konrad Kurczyński Użytkownik (580 p.)
Dziękuję, wyelminowało to jeden z błędów, literówka...
komentarz 17 marca 2017 przez niezalogowany
Zła kategoria + łamiesz regulamin dotyczący zadań ze SPOJ. Popraw wszystko inaczej będę zmuszony ukryć to pytanie

1 odpowiedź

+1 głos
odpowiedź 16 marca 2017 przez mokrowski Mędrzec (158,960 p.)
Zapisałeś zmienną ilośćprob oraz inne z użyciem znaków spoza ASCII. Język C++ wymaga aby tego typu nazwy nie zawierały znaków narodowych.

Następną sprawą jest to że nie podajesz które zadanie ze SPOJ'a. Ludzie mają zgadywać aby Ci pomóc?
komentarz 17 marca 2017 przez Konrad Kurczyński Użytkownik (580 p.)
edycja 17 marca 2017 przez Konrad Kurczyński
Napisałem Zadanie to kalkulator, poprawiłem to według twoich zaleceń, jednak to nic nie zmienia (w innych programach (pisanych w Xcode) mogłem używać polskich znaków, jeżeli były na spoja to je eliminowałem przed wrzuceniem, aczkolwiek ten jest źle zrobiony na etapie Xcode)
1
komentarz 17 marca 2017 przez mokrowski Mędrzec (158,960 p.)
  1. Podawaj link do zadania. Nikt nie będzie domyślał się "który kalkulator, jaki flamaster jakie liczby pierwsze" (jest to częsty powód dlaczego nikt nie odpowiada).
  2. Każde IDE pracujące w systemie dopuszcza wpisywanie znaków alfabetów spoza ASCII. Robi się to przecież w komentarzach, robi się to w komunikatach wpisywanych. Rodzaj IDE jest nieistotny (ja także pracuję w XCode). Zasada jest prosta. Nie używaj znaków spoza ASCII w nazwach funkcji/klas/zmiennych itp. i się do tego przyzwyczaj.
  3. Popatrz na for. Jak inkrementujesz zmienną i? Na marginesie popraw na : ++i a nie na i++. Dobre nawyki warto wyrabiać.
  4. Popatrz na zestawdanych. w którym miejscu definiujesz że jest tablicą?
  5. Dlaczego stosujesz zmienne globalne?
komentarz 17 marca 2017 przez Evelek Nałogowiec (28,960 p.)

Popatrz na for. Jak inkrementujesz zmienną i? Na marginesie popraw na : ++i a nie na i++. Dobre nawyki warto wyrabiać. - O! I to mnie zastanawia czasami. Czytałem dużo na temat ++i vs. i++, różne fora, komentarze ze Stackoverflow itp. I dużo osób twierdziło, że ++i jest "wydajniejsze" cokolwiek by to miało znaczyć. Różne kody z Assemblera widziałem, gdzie ludzie pokazywali, że niezależnie czy to jest preinkrementacja czy postinkrementacja to kod jest taki sam. Pytanie więc do Ciebie mokrowski, czy można to jakoś uzasadnić i wybrać "lepszą" inkrementację?

komentarz 17 marca 2017 przez mokrowski Mędrzec (158,960 p.)
Standard języka C++ nie definiuje jak ma być generowany kod asemblera. Może być generowany mniej lub bardziej optymalnie. I bywa naprawdę różnie. Za to standard definiuje operator pre/post  oraz pre/post dekrementacji. W przypadku operatorów post, jest tam przesyłany int. Taka jest prawdziwa sygnatura tej funkcji/metody. Dość że budzi to znane kontrowersje. Ale to przyzwyczajenie łatwo zmienić i IMHO (jeszcze) warto.
komentarz 17 marca 2017 przez Konrad Kurczyński Użytkownik (580 p.)
edycja 17 marca 2017 przez Konrad Kurczyński
Dziękuje za odpowiedź, a czy ze zmiennej string nie mogę odczytać jednego znaku(np. wynik = zestawdanych[2] + zestawdanych[4])?  Przecież ona jest jakby tablicą.

Podobne pytania

0 głosów
1 odpowiedź 644 wizyt
pytanie zadane 8 września 2019 w C i C++ przez amelia.cpp Obywatel (1,860 p.)
0 głosów
1 odpowiedź 734 wizyt
pytanie zadane 27 września 2017 w C i C++ przez adam456 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 462 wizyt
pytanie zadane 14 września 2018 w SPOJ przez Nowacx02 Obywatel (1,060 p.)

93,717 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,261 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...