-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path016_str106_polja.cpp
66 lines (53 loc) · 1.97 KB
/
016_str106_polja.cpp
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
#include <iostream>
#include <fstream>
using namespace std;
int main(){
/*
- Polje podataka je niz konačnog broja istovrsnih podataka - članova polja.
- Ti podaci mogu biti bilo kojeg tipa, ugrađenog (npr. float ili int) ili korisnički definiranog.
- Članovi polja mogu se dohvaćati pomoću cjelobrojnog indeksa i mjenjati neovisno o ostalim članovima polja. */
float a[5];
/*
- Prevoditelj će ovom deklaracijom osigurati kontinuirani prostor u memoriji za pet decimalnih brojeva tipa float
- Ovakvom deklaracijom članovi polja nisu inicijalizirani, tako da imaju slučajne vrijednosti ovisno o tome što se nalazilo u dijelu memorije koji je
dodijeljen (alociran) polju. */
float b[]={1,3,5,7,9};
/*
- Članovi polja mogu se inicijalizirati i na ovakav način prilikom deklaracije.
- Prevoditelj će iz inicijalizacijske liste sam zaključiti da je polje duljine 5 i rezervirati odgovarajući memorijski prostor.
- Duljina polja se zato može izostaviti prilikom inicijalizacije, ali ako se navede treba paziti da bude veća ili jednaka broju inicijaliziranih članova
- Broj inicijaliziranih članova može biti manji od duljine polja, a tada članovi brojčanog polja kojima nedostaju inicijalizatori postaju jednaki nuli */
const int nmax=100;
float x[nmax];
ifstream ulazniTok("brojevi.txt");
if(!ulazniTok) {
cerr<<"Ne mogu otvoriti datoteku"<<endl; //standardni izlazni tok za ispis pogrešaka, koji podrazumijevano ide na zaslon
return 1;
}
int n=-1;
while(!ulazniTok.eof()){ //prekida se na kraju datoteke, nailaskom na kraj vraća True
if(n>=nmax){
cerr<<"Previše podataka"<<endl;
return 2;
}
ulazniTok>>x[++n];
}
if(n<0){
cerr<<"Nema podataka!"<<endl;
return 3;
}
bool zamjena=true;
for (int i=n-1;i>0&&zamjena;i--){
zamjena=false;
for(int j=0;j<i;j++)
if(x[j]>x[j+1]){
int pom=x[j];
x[j]=x[j+1];
x[j+1]=pom;
zamjena=true;
}
}
cout<<"Sortirani brojevi"<<endl;
for(int i=0;i<n;i++) cout<<x[i]<<" ";
return 0;
}