[C/C++] Jakie to działanie?
Ostatnio zmodyfikowano 2014-10-23 08:37
outlet52 Temat założony przez niniejszego użytkownika |
[C/C++] Jakie to działanie? » 2014-10-22 23:36:51 Pomogliście mi ostatnio więc mam nadzieje, że teraz też dacie rade :D Zadanie pochodzi ze strony main.edu.pl (http://main.edu.pl/pl/user.phtml?op=showtask&task=jak&con=CPP) Myślałem, żeby zrobić to 6 krótkimi warunkami, efekt jest prawidłowy ale od razu wyświetla się "Program nie odpowiada". #include <cstdio>
int main() { unsigned int a,b,c; scanf("%u %u %u", &a,&b,&c); if(a+b==c) { printf("\n%u + %u == %u", a,b,c); } if(a-b==c) { printf("\n%u - %u == %u", a,b,c); } if(a*b==c) { printf("\n%u * %u == %u", a,b,c); } if(a/b==c && b>0) { printf("\n%u / %u == %u", a,b,c); } if(a%b==c && b>0) { printf("\n%u r. %u == %u", a,b,c); } return 0; } Wie ktoś gdzie robię błąd? Albo może to zadanie można zrobić zupełnie inaczej? :D Proszę pisać własne propozycje. Pozdrawiam. |
|
Rashmistrz |
» 2014-10-23 00:01:08 Jak dobrze rozumiem, program ma zgadnąć jakie obliczenie stało się z A i B dając C? Problem jest tu: if( a / b == c && b > 0 ) i tu: if( a % b == c && b > 0 ) Zagnieźdź te sprawdzanie działania w if'ie: ,bo inaczej zawsze Ci się wykona te dzielenie i modulo... EDIT: Nie zapomnij zamienić: if( b > 0 ) na if( b != ) . Chociaż żadnej różnicy to nie da, bo :/ |
|
outlet52 Temat założony przez niniejszego użytkownika |
» 2014-10-23 08:17:21 Wow, rzeczywiście pomogło, możesz mi powiedzieć dlaczego tak się stało? :O Myślałem, że taka forma jaką ty mi podałeś jest dokładnie tym samym co wpisałem wcześniej, tylko, że użyłem operatora &&. Ktoś mógłby wyjaśnić dlaczego przy moim był błąd? :P |
|
Rashmistrz |
» 2014-10-23 08:37:21 ,bo inaczej zawsze Ci się wykona te dzielenie i modulo.. |
w tamtym miejscu... Użyłeś wtedy koniunkcji zdań logicznych. Nie miały te warunki żadnych ograniczeń i zawsze się wykonywały te obliczenia. np. 5 % 0 == 5 && 0 > 0 Ale oczywiście koniunkcja nie pozwoli na wypisanie bo drugie zdanie logiczne jest fałszywe... Operacje logiczneDlatego zagnieździłem "if" w "ifie"... //Przepraszam za skromność, ale szkoła woła. |
|
« 1 » |