Pomoc z kodem

2 views
Skip to first unread message

Mikishiwa

unread,
Nov 18, 2009, 12:56:13 PM11/18/09
to linuxadvices
witam, mam takie pytanie nowicjusza, dość długo męczę się żeby
zastosować funkcję "if" w moim programiku:

#include <iostream>

using namespace std;

int main()
{
int liczba1;
int liczba2;
int x;

if(x = + 1) {
liczba1+liczba2;
}
else if(x = - 2) {
liczba1-liczba2;
}

cout << "Wprowadz dwie liczby: ";
cin >> liczba1 >> x >> liczba2 ;

cout << "twoj wynik to: " ;




system("PAUSE>nul");
return 0;
}

chodzi mi o to jak sprawić żeby if został zastosowany w linijce z
wynikiem. Z góry dziękuję za pomoc

Laziers

unread,
Nov 18, 2009, 2:32:30 PM11/18/09
to linuxa...@googlegroups.com
lol :D

2009/11/18 Mikishiwa <miki...@gmail.com>

pikson

unread,
Nov 18, 2009, 2:49:38 PM11/18/09
to linuxa...@googlegroups.com

Cześć,
tak tylko dla informacji powiem Ci, że projekt LinuxAdvices był
projektem na potrzeby nauki Javy, ale co tam!

Odnosząc się do Twojego pytania to sprawa ma się tak:
-można zastosować funkcję assert() jest częścią biblioteki C
-dodatkowe biblioteki
-lub jak na twoje potrzeby po prostu metodę wypluwania na ekran,
czyli wstaw w kodzie cout <<

Dla ścisłości if nie jest funkcją tylko instrukcją sterującą.

Pozdrawiam
Tomasz Trela

PS. chyba jeszcze musisz troszkę poczytać o c++.
1. Nie istnieje operator x =+ (see: http://en.wikipedia.org/wiki/
Operators_in_C_and_C%2B%2B)
może dlatego ci warunek w ifie nie działa prawidłowo
2. Może poczytaj o zmiennych i przypisaniach

Michał Tomczuk

unread,
Nov 19, 2009, 6:41:11 AM11/19/09
to linuxa...@googlegroups.com
Przede wszystkim jak robisz porównanie:

if(x = + 1) {

to masz w tym miejscu PRZYPISANIA, porównanie wygląda tak:

if(x == 1) {     (niepotrzebny plus, DWA znaki równości)

Tak samo w drugim if'ie. W tym momencie Twój program po prostu ustawia zmienną x na "1" w pierwszym if'ie, a co za tym idzie warunek jest spełniony (bo jest różny od 0, więc wnętrze if'a jest wykonywane. Nie pamiętam czy jest wynanywane, gdy w warunku wychodzi liczba ujemna - tak jak "-2" w drugim if'ie). 

Poza tym program jest źle skonstruowany!!!

Instrukcje if powinieneś umieścić PO pobraniu danych!!! W Twoim przypadku, przy starcie programu zmiennym zadeklarowanym na początku programu są przypisywane losowe wartości z pamięci komputera, następnie wykonywane są porównania (if'y), a dopiero potem wprowadzanie danych.

Na dodatek wnętrze instrukcji if nie ma sensu, bo

liczba1+liczba2;

nie robi zupełnie nic, i napewno zwraca błąd czasu kompilacji. Napisz, co chciałeś osiągnąć tym programem, to napiszę Ci jak powinien wyglądać prawidłowy kod i czemu tak jest.
--
Nec temere, nec timide

Mikishiwa

unread,
Nov 19, 2009, 4:18:14 AM11/19/09
to linuxadvices
Dziękuję za pomoc, już znalazłem co jest nie tak ;)
Reply all
Reply to author
Forward
0 new messages