1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
#include <iostream>
#include <fstream> /* za branje iz datoteke */
#include <conio.h> /* for getch(), non-portable */
#include <iomanip> // za std::setprecision()
using namespace std;
int nalozi_datoteko_v_polje_double(double polje[], const char* ime_datoteke) {
fstream file(ime_datoteke);
int st_prebranih_stevil = 0;
while (!file.eof()) {
file >> polje[st_prebranih_stevil];
st_prebranih_stevil++;
}
return st_prebranih_stevil;
}
int countPositive(double polje[], int dolzina_polja) {
int positive = 0;
for (int i = 0; i < dolzina_polja; ++i)
if (polje[i] > 0)
++positive;
return positive;
}
int countNegative(double polje[], int dolzina_polja) {
int negative = 0;
for (int i = 0; i < dolzina_polja; ++i)
if (polje[i] < 0)
++negative;
return negative;
}
void izpis_pozit(double polje[], int dolzina_polja) {
cout << "Positive numbers: ";
for (int i = 0; i < dolzina_polja; ++i)
if (polje[i] > 0)
cout << polje[i] << " ";
cout << "\n";
}
void izpis_negat(double polje[], int dolzina_polja) {
cout << "Negative numbers: ";
for (int i = 0; i < dolzina_polja; ++i)
if (polje[i] < 0)
cout << polje[i] << " ";
cout << "\n";
}
void izpis_polja_double(double polje[], int dolzina_polja) {
cout << fixed << setprecision(2); // želimo 2 decimalni mesti
for (int i = 0; i < dolzina_polja; i++) {
cout << polje[i] << endl;
}
}
// a (10t) - poišci in izpiši število negativnih in pozitivnih števil
// b (10t) - najprej izpiši vsa pozitivna števila, nato še vsa negativna števila
int main(void) {
const int VELIKOST_POLJA = 100; // nastavimo na veliko vrednost, da imamo dovolj
//prostora (v tem primeru je rezerva za 100 - 20 = 80 števil)
double polje_realnih[VELIKOST_POLJA];
int st_stevil = nalozi_datoteko_v_polje_double(polje_realnih,
"datoteka_z_realnimi_stevili.txt");
cout << "Stevilo stevil: " << st_stevil;
/*
// Print the array.
cout << endl << "Polje:" << endl;
izpis_polja_double(polje_realnih, st_stevil);
*/
cout << endl;
izpis_pozit(polje_realnih, st_stevil);
izpis_negat(polje_realnih, st_stevil);
cout << "Number of positive numbers: " << countPositive(polje_realnih, st_stevil) << "\n";
cout << "Number of negative numbers: " << countNegative(polje_realnih, st_stevil) << "\n";
getch(); // cakamo na poljuben znak, nato koncamo program
return 0;
}
|