Nie mam pojęcia, ale podejrzewam, że tak, niedoczytałeś. Było to już tyle razy poruszane ....
o
1. Fatalne formatowanie wklejonego kodu </> - ctrl-k
2. Nie wszyscy są fanami c# więc warto napisać, że to c#, java, albo jeszcze coś inneg.
3. Gdyby zadanie polegało np na wypisaniu największego i najmniejszego wyniku lub coś podobnego to owszem. Tutaj można od razu wypisywać wyniki, zamiast je tablicować.
4. Dla "grzecznych" danych twój program jest ok
--
grzeczne:
dane [eof]
niegrzeczne:
dane
[eof]
bardzo niegrzeczne:
[empty line]
dane
[empty line]
dane
[empty line]
[eof]
Przetestuj chociaż dla umiarkowanie "niegrzecznych" danych
Przy pisaniu kodu, unikaj jak ognia metody copy/paste. Gdybyś musiał wszystko pisać z klawiatury, może natychmiast poprawiłbyś/napisał kod,w poniższy sposób:
l1 = Convert.ToInt32(liczby[1]);
l2 = Convert.ToInt32(liczby[2]);
if (znak==...)
wynik = l1 /[+-*%] l2;
...
lub
swich (znak){
case '+' : wynik = l1 + l2;
break;
....
itd
znak = liczby[0];
Nazwa tablicy jest źle dobrana, nie uważasz?
Czy nie lepiej np tak:
operator = dane[0];
lub
op = linia[0]; //bufor[0];
Witam, prośba o znalezienie bledu
include
using namespace std;
int a,b,n;
char wybor;
int main()
{
cin>>n;
for (int i=1; i<=n; i++)
{
cin>>wybor>>a>>b;
switch(wybor)
{
case '+': {cout< case '-': {cout< case '': {cout<b;}break;
case '/': if(b==0); else {cout< case '%': {cout< }
}
return 0;
}
W tym zadaniu nie ma podanej liczby zestawów, jak wczytywać w takim przypadku poczytaj tutaj108 A kod umieszczaj w znacznikach dostępnych pod ctrl +k, będzie sformatowany
Oprócz rzucania okiem warto też testować, np chociażby na ideone wkleić test: https://ideone.com/LyDEsM56 i już na drugi rzut oka widać, że wygląda ok, ale tak nie jest [na wyjściu brak -4].
Powodem jest brak jednego małego [dwóch] znaczków: \n
Warunek mógłby wyglądać np tak:
while (scanf ("%c %d %d\n", &wybor, &a, &b) != EOF)
Może ktoś powiedzieć gdzie mam błąd:
include
include
using namespace std;
int main()
{
char znak;
int a=0, b=0, i=1;
while(i)
{
cin >> znak;
cin >> a;
cin >> b;
switch(znak)
{
case '+':
cout << a+b;
break;
case '-':
cout << a-b;
break;
case '*':
cout << a*+b;
break;
case '/':
cout << a/b;
break;
case '%':
cout << a%b;
break;
default: exit(0);
}
cout << endl;
}
return 0;
}
Witam wszystkich, to mój pierwszy post na forum, poprawcie mnie jak piszę w złym miejscu
Otóż mimo, że mój kod zdaje się działać poprawnie, SPOJ wyrzuca mi błąd o przekroczeniu limitu czasu. Jestem bardzo początkujący i nie mam pomysłu na optymalizację. Czy ktoś byłby w stanie mi pokazać, co mógłbym zrobić lepiej?Kod pod spodem, ponieważ nie wiem gdzie powinno się go wkleić
include
using namespace std;
int a,b;
char znak;
int main()
{
while(true)
{
cin>>znak>>a>>b;
switch(znak)
{
case '/':
cout<<a/b<<endl;
break;
case '*':
cout<<a*b<<endl;
break;
case '+':
cout<<a+b<<endl;
break;
case '-':
cout<<a-b<<endl;
break;
case '%':
cout<<a%b<<endl;
break;
}
}
return 0;
}