Unë jam i ri në programim, dhe po përpiqem të mësoj vetë C++ dhe po ndjek "Parimet e programimit dhe praktikën duke përdorur C++".
Po përpiqesha të bëja një ushtrim që, pas hapave të tjerë të ndryshëm, më kërkonte
" ...ndrysho trupin e lakut në mënyrë që të lexojë vetëm një dyfish çdo herë. Përcaktoni dy variabla për të mbajtur gjurmët se cila është vlera më e vogël dhe cila është vlera më e madhe që keni parë deri tani. Çdo herë përmes ciklit shkruani nga vlera e futur. Nëse është më e vogla deri tani, shkruani më të voglin deri më tani pas numrit. Nëse është më e madhja deri tani, shkruani më të madhin deri tani pas numrit".
Deri tani kam shkruar kodin e mëposhtëm:
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
inline void keep_window_open() { cout<<"\nType a character to exit: "; char ch; cin>>ch; }
int main()
{
double val1 = 0, smallest = 0, largest = 0;
int flag = 0;
while (cin >>val1) {
if (val1=='|')
break;
else
cout <<val1 <<'\n';
if (flag==0) {
smallest = val1;
cout <<smallest <<" it's the smallest value so far.\n";
}
if (val1<smallest) {
smallest = val1;
cout <<smallest <<" it's the smallest value so far.\n"; }
else if (val1>largest) {
largest = val1;
cout <<largest <<" it's the largest value so far.\n"; }
++flag;
}
keep_window_open();
return 0;
}
Problemi im është se kur fut një karakter, p.sh. 'c', programi përfundon, edhe pse programi duhet të përfundojë, hipotetikisht, vetëm kur fut '|', dhe marr:
c
Type a character to exit:
Process returned 0 (0x0) execution time : ...
Press any key to continue.
dhe "keep_window_open()"
nuk pret që të futet një karakter. Unë thjesht nuk mund ta kuptoj se çfarë ndodh dhe pse. A ka dikush një ide?