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

SPOJ Kalkulator - CALC problem z zadaniem

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
254 wizyt
pytanie zadane 8 września 2019 w C i C++ przez amelia.cpp Obywatel (1,860 p.)

Cześć robię zadanie na SPOJ, a mianowicie : https://pl.spoj.com/problems/CALC/

Sędzia nie przepuszcza mojego kodu, chociaż w VS działa bez problemu:( co jest źle i co można poprawić? Proszę o pomoc

#include <iostream>
#pragma warning ( disable : 6006 )

using namespace std;

int main()
{
	int t = 100;
	while (t != 0)
	{
		char znak;
		int liczba1, liczba2;
		cin >> znak >> liczba1 >> liczba2;
		switch (znak)
		{
		case '+': {int32_t wynik = liczba1 + liczba2; cout << wynik << endl;  break; }
		case '-': {int32_t wynik = liczba1 - liczba2; cout << wynik << endl;  break; }
		case '*': {int32_t wynik = liczba1 * liczba2; cout << wynik << endl;  break; };
		case '/': {int32_t wynik = liczba1 / liczba2; cout << wynik << endl;  break; }
		case '%': {int32_t wynik = liczba1 % liczba2; cout << wynik << endl;  break; }
		}
		t--;
	}

}

 

komentarz 8 września 2019 przez Velta Maniak (50,670 p.)
Zbędny średnik na końcu linijki #18?
komentarz 8 września 2019 przez tkz Nałogowiec (41,900 p.)

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

Nie 100, tylko nieokreślona. Wczytaj gdzieś to "t".

komentarz 8 września 2019 przez amelia.cpp Obywatel (1,860 p.)

@Velta, Niestety, to nic nie zmienia :(

komentarz 8 września 2019 przez amelia.cpp Obywatel (1,860 p.)

 Liczba testów nie przekracza 100, wynik zawiera się w typie int32.

 

komentarz 8 września 2019 przez tkz Nałogowiec (41,900 p.)
Gdzie piszą,że masz zaczynać od 100?
komentarz 8 września 2019 przez amelia.cpp Obywatel (1,860 p.)
Czy to robi różnicę? Nie bardzo rozumiem...
komentarz 8 września 2019 przez reaktywny Nałogowiec (29,970 p.)

IMO ta pętla while jest w ogóle zbędna (a być może w ogóle nie dopuszczalna !)... Wydaje mi się, że program ma obliczyć jedną operację, a SPOJ uruchomi go wiele razy sam na swoich testowych danych.

Napisz czy pomogło.

1 odpowiedź

0 głosów
odpowiedź 8 września 2019 przez Whistleroosh Nałogowiec (35,380 p.)
wybrane 8 września 2019 przez amelia.cpp
 
Najlepsza

Jeżeli w zadaniach nie ma określonych ilości testów, to przeważnie wystarczy utworzyć pętlę while, która wygląda następująco:

while(cin >> n)

W twoim przypadku musisz wykonywać pętlę dopóki dostajesz wartości znak, liczba1 i liczba2, czyli piszesz:

while(cin >> znak >> liczba1 >> liczba2)

Poprawne rozwiązanie wygląda tak:

#include <iostream>

using namespace std;
 
int main()
{
	int liczba1, liczba2, wynik;
	char znak;
	
    while (cin >> znak >> liczba1 >> liczba2)
    {
        
        switch (znak)
        {
        case '+': 
        	wynik = liczba1+liczba2;
        	break;
        case '-': 
        	wynik = liczba1-liczba2;
        	break;
        case '*': 
    		wynik = liczba1*liczba2;
        	break;
        case '/': 
        	wynik = liczba1/liczba2;
        	break;
        case '%': 
        	wynik = liczba1%liczba2;
        	break;
        }
        
        cout << wynik << "\n";
    }
 
}

 

komentarz 8 września 2019 przez amelia.cpp Obywatel (1,860 p.)
Działa, dzięki ;)

Podobne pytania

–3 głosów
1 odpowiedź 342 wizyt
0 głosów
1 odpowiedź 519 wizyt
pytanie zadane 27 września 2017 w C i C++ przez adam456 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 3,340 wizyt
pytanie zadane 13 czerwca 2016 w C i C++ przez Hellgrush Nowicjusz (230 p.)

89,745 zapytań

138,348 odpowiedzi

309,372 komentarzy

59,659 pasjonatów

Advent of Code 2022

Top 15 użytkowników

  1. 747p. - Argeento
  2. 696p. - Mikbac
  3. 693p. - Michal Drewniak
  4. 692p. - rucin93
  5. 688p. - Łukasz Eckert
  6. 679p. - ssynowiec
  7. 678p. - TheLukaszNs
  8. 645p. - Jarosław Roszyk
  9. 640p. - adrian17
  10. 592p. - nidomika
  11. 522p. - JMazurkiewicz
  12. 515p. - Hubert Chęciński
  13. 506p. - tokox
  14. 501p. - Rafał Budzis
  15. 498p. - overcq
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...