14 / 50
Feb 2016

W zadaniu masz, że zostanie podana nieokreślona liczba zestawów danych.
Użyj while(cin>>a>>b>>c)

W odpowiedzi na zestaw z zadania twój program daje 16-43021, przydało by się wyświelać odpowiedzi w osobnych liniach jak to w przykładzie jest. Jak już ci zaliczy nie zapomnij usunąć kodów, a zaliczy jak dodasz ten podział.

ps żeby uniknąć takich błędów w przyszłości, zmień sposób testowania np korzystaj z ideone.com. Tam możesz od razu wkleić całe wejście, więc taki błąd będzie od razu widoczny w wyjściu.

U mnie widzę poprawne wyniki, nie wiem dlaczego nie może tego uznać, trudno, omijam to zadanie, dzięki za próbę pomocy smiley

Zamiast while (i<100) daj while (cin >> a >> b >> c) i będzie dobrze. Swoją drogą jest tu więcej zadań w których będziesz wczytywał w taki sposób, więc nie rezygnuj łatwo. I usuń kod z forum jak już ci zaliczy.

Zrobiłem jak radzisz na samym początki i nie zaliczyło, teraz również nie zaliczyło, więc no sam nie wiem.

Wcześniejszy kod był nie do końca dobry, dla danych wejściowych, tj
Wejście:
+ 7 9
- 0 4
* 5 6
/ 8 3
% 5 2

Wyjście wyglądało tak:16-43021

Zamiast:
16
-4
30
2
1

Jak widać w tym fragmencie wczytujesz 2x, usuń 2 cin-a i ci zaliczy. Swoją drogą ta else return 0; linia jest zbędna, przy tej konstrukcji while "będzie wiedział" kiedy przestać. W przypadku gdybyś testował wczytując z palca (nie polecam) to kończysz przez ctrl + d pod Linuksem lub też ctrl + z pod Windows.

booooże frowning dziękuje bardzo bo naprawdę sprawdzałem ten kod z kilkanaście razy i nie zauważyłem tego, dopiero raczkuję

Hej, mam pytanie z innej beczki....
Chodzi mi optymalizację kodu kalkulatora (piszę w C++). Rozwiązałam zadanie w ten sposób: http://wklej.to/JPnq129 , wyniki są poprawne ale niestety spoj nie chce uznać rozwiązania, bo przekracza limit czasu.
Czy ktoś ma pomysł/radę jak mądrze zoptymalizować mój kod?

Nie wiem czy to będzie wystarczająco mądrze? wink Ja w każdym razie [w tym przypadkowym razie] zoptymalizowałbym w ten sposób, że znacznie, ale to znacznie skróciłbym czas na oczekiwanie danych, których już więcej nie ma i już nie będzie - skończył się wraz z końcem plik z danymi [eof].

Jak?

Np tak:
while (cin >> wybor) { // jeżeli udało się jeszcze coś wczytać to idę do pętli, jeżeli już nic nie ma to nie [wchodzę]

zamiast:
for ( ; ; ) // czekanie w nieskończoność w pętli, aż do tle [przekroczenia limitu czasu]

dzięki za wskazówkę! Właśnie nieskończona pętla for była tu problemem. Rozwiązanie problemu okazało się banalne....należało zawęzić pętlę for do 100 operacji.... grin

Na wejście programu podana zostanie pewna nieokreślona liczba zestawów danych.

A więc nie sto.
W twoim programie zmienłbym:
1. nazwy x, y na a, b
2. wyrzucił drukowanie wyniku poza pętlę switch
3. w case ...: wynik = a + b; itd
4 lub nawet a += b; //a -= b itd. a jest zarówno daną do obliczeń jak i wynikiem
5 wczytywać [nieokreśloną liczbę danych] można też tak: while (cin >> wybor >> a >> b){
....
PS
6. gdy zrezygnujesz z getchar() blioteka stdio jest zbędna

Dzięki za 6 wskazówek, kod jest dużo prostszy smiley
W zadaniu w specyfikacji wejścia jest jeszcze taka wypowiedź: "[...] Liczba testów nie przekracza 100, wynik zawiera się w typie int32". Z tego powodu zawęziłam for do 100 operacji. Nawet jeśli poprawnie zinterpretowałam to zdanie, no to wiem...kod nie jest uniwersalny, więc zmieniam na while(cin >> wybor >> a >> b) smiley

16 days later

Hej! Mam problem z zadaniem kalkulator...

Sędzia nie chce przyjąć mojego kodu, pomimo, że dane wyjściowe są
poprawne. Móglby ktoś powiedzieć mi co jest nie tak w tym kodzie?

https://ideone.com/g2cisC110

Twój kod nie działa dla przykładowego wejścia: https://ideone.com/qO7M4s67. Zwróć uwagę, że w zadaniu nie jest podana liczba danych wejściowych - musisz wczytać ich nieznaną ilość. Odszukaj na tym albo starym (raczej starym) forum poradnik dotyczący wczytywania nieokreślonej liczby testów a po AC usuń kod.

Masz return 0; w while a nie za nim. Jak to poprawisz masz AC wink Usuń potem link do kodu