Poprawienie kodu

0

}

#include <iostream>
#include <cstdlib>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;

string produkty()
{ 
	cout<<"Podaj pierwszy zakupiony produkt"<<endl;
    string p;
    cin>>p;
    cout<<"Podaj drugi zakupiony produkt"<<endl;
    string p2;
    cin>>p2;
    return p2;
}
double ilosc()
{
	cout<<"Podaj ilosc pierwszego produktu"<<endl;
	double i;
	cin>>i;
    cout<<"Podaj ilosc drugiego produktu"<<endl;
	double i2;
	cin>>i2;
}
double cena()
{ 
	cout<<"Podaj cene pierwszego z produktow (w zl)"<<endl;
    double c;
    cin>>c;
    cout<<"Podaj cene drugiego z produktow (w zl)"<<endl;
    double c2;
    cin>>c2;
    return c2;
}


int main(int argc, char *argv[])
{
	produkty();
	ilosc();
	cena();
	double i,i2,c,c2;
	string p,p2;
    cout<<"Paragon\n  " <<p<<"\t" <<i<<"x"<<c<<"zl\n  "<<p2<<"\t" <<i2<<"x"<<c2<<"zl\n\n""KOSZT:"<<i*c+i2*c2<<"zl";
	return 0;

Mógłby ktoś mi pomóc. Mianowicie mam problem napisałam program, wszystko kompiluje lecz nie wyświetla poprawnie paragonu.W czym jest problem ? Z góry dzieki za pomoc.

0

	x1 = produkty();
	x2 = ilosc();
	x3 = cena();

zwracane wartości musisz gdzieś zapisywać...

0
 
double i,i2,c,c2;
string p,p2;
cout<<"Paragon\n  " <<p<<"\t" <<i<<"x"<<c<<"zl\n  "<<p2<<"\t" <<i2<<"x"<<c2<<"zl\n\n""KOSZT:"<<i*c+i2*c2<<"zl";

3 linijki z Twojego kodu (w mainie), pytanie moje jakie wartości posiadają zmienne i,i2,c,c2, p,p2? (jak sobie na to pytanie odpowiesz zobaczysz gdzie błąd)

0

Już wszystko działa, dzięki wielkie za pomoc :)

0

Już wszystko działa, dzięki wielkie za pomoc :)

0

Pomyśl.

Herezje po raz kolejny. Stworzyłaś 3 funkcje, które mają zwracać odpowiednie wartości, ale zwracają tylko 2gie wartości zadeklarowane wewnątrz... Bezsensownie jest to zaprojektowane.
Po co robić osobne funkcje, które nic nie mają robić? Tylko po to, żeby wyświetlać dane od użytkownika? Na to nie trzeba funkcji, wystarczy wszystko wyświetlać na bieżąco. Jak już tak bardzo chcesz to robić za pomocą funkcji, to stwórz osobną strukturę, która będzie posiadać dwie wartości i będzie zwracana przez odpowiednią funkcję (3 struktury).
W tym momencie Twój program tworzy nowe (niewyzerowane!) zmienne i wyświetla śmieci.

0

przede wszystkim to ty musisz zrozumieć ,że każda funkcja ma zupełnie inny kontekst. Autor myślał chyba ,że te zmienne które zdefiniował w mainie zostały zmienione przez inne funkcje lokalne skoro chciał wypisać ich zawartość.

0

Jednak nie działa. Czy panowie pomożecie?

0

Napisałem, co trzeba zrobić.

0

można też zrobić to tak, to chyba najlepsze rozwiązanie:

void cena(int *a, int *b)
{
	cout << "podaj cene a i b" << endl;
	cin >> *a;
	cin >> *b;
}

int main()
{
	int x, y;
	int *wsk1 = &x; 
	int *wsk2 = &y;
	cena(wsk1, wsk2);
	cout << x << " " << y;
}

działa, bo sprawdzałem

1 użytkowników online, w tym zalogowanych: 0, gości: 1