Apocaliptiq [ Legend ]
Pomoc programisty potrzebna :P (C++)
Cześć. Mam napisać program na podstawie algorytmu znajdowania najmniejszego lub najw. elementu w ciągu liczb w języku C++.
Mam coś takiego:
#include<iostream.h>
int ilosc;
int wprowadzanie(int &liczba, int &ilosc)
‹
cout << "Wprowadz ilosc liczb ";
cin >> ilosc;
cout << "Wprowadz liczbe ";
cin >> liczba;
ilosc=ilosc-1;
return liczba,ilosc;
›
int ustawienie(int &min, int &liczba)
‹
for (ilosc;ilosc>0;ilosc=ilosc-ilosc)
‹
cout << "Wprowadz kolejna liczbe ";
cin >> liczba;
if (liczba < min)
‹
min=liczba;
›
else
cout << min;
return min;
›
›
int main()
‹
int liczba;
int min;
wprowadzanie(liczba,ilosc);
min=liczba;
ustawienie(min,liczba);
cin.get();
cin.get();
return 0;
›
Program nie działa...a wlasciwie działa tylko że pętla nie wykonuje się do końca. Jakieś pomysły?
tomazzi [ Flash YD ]
ilosc=ilosc-ilosc - pętla zadziała tylko raz bo po jednej iteracji ilość=0
return min; dałes to w pętli więc program od razu wyjdzie z tej funkcji. Daj return poza pętlą.
return liczba,ilosc; - tutaj Ci błędu nie wyrzuca?
Apocaliptiq [ Legend ]
for (ilosc;ilosc>0;ilosc--)
Nadal ten sam problem ;/
W przypadku gdy warunek nie jest spełniony i przechodzi od razu do else - wszystko wygląda okej. Natomiast gdy warunek jest prawdziwy - program zatrzymuje się.
tomazzi [ Flash YD ]
int ustawienie(int &min, int &liczba)
‹
for (ilosc;ilosc>0;ilosc=ilosc-ilosc) //wchodzi do pętli
‹
cout << "Wprowadz kolejna liczbe ";
cin >> liczba;
if (liczba < min) //jeśli warunek..
‹ //..
min=liczba; //..
› //..
else //jak nie to..
cout << min; //..
return min; // to jest już poza elsem, wykonuje się zawsze
›
›
return liczba,ilosc;
Z tego co wiadomo return zwraca tylko jedną wartość.
Apocaliptiq [ Legend ]
Okej, dzięki za pomoc. Faktycznie problem polegał na umieszczeniu
return min;
w pętli.
tomazzi [ Flash YD ]
Spoko loko. Służę radą :)