Ho il vettore composto dai numeri
10 22 11 44 10 33 55
Con il select sort viene modificato in qst modo:
10 10 22 44 33 55.
Adesso 33 dovrebbe stare al posto di 44 e non capisco xké.
Codice:main.cpp #include "header.h" int main(int argc, char *argv[]) { vettore v1, v2, v3; int n1, n2, n3; char c1[]="file1.txt"; char c2[]="file2.txt"; char c3[]="file3.txt"; leggiDaFile( v1, n1, c1); leggiDaFile( v2, n2, c2); leggiDaFile( v3, n3, c3); stampaVettore( v1, n1); stampaVettore( v2, n2); stampaVettore( v3, n3); selectSort( v1, n1); selectSort( v2, n2); selectSort( v3, n3); stampaVettore( v1, n1); system("PAUSE"); return EXIT_SUCCESS; }Codice:header.h #ifndef HEADER_H #define HEADER_H #include <cstdlib> #include <iostream> #include <fstream> using namespace std; typedef int vettore[100]; void leggiDaFile(vettore , int &, char *); void stampaVettore(vettore , int); void selectSort(vettore , int ); #endifCodice:header.cpp #include "header.h" void leggiDaFile(vettore v, int &n, char *c){ fstream f; f.open( c, ios::in); if(!f) cout<<"Impossibile leggere il file\n"; else{int i=0; while(!f.eof()){ f>>v[i]; i++; n++; }n=i; }f.close(); } void stampaVettore(vettore v, int n){ cout<<"Il vettore e'\n"; for(int i=0; i<n; i++){ cout<<"v["<<i<<"]: "<<v[i]<<endl; } } void selectSort(vettore v, int n) { for(int i=0; i<n-1; i++) { int min=v[i]; int pos=i; for (int j=i+1; j<n; j++) { if (min>v[j]) { min=v[j]; pos=j; } if (pos!=i) { int app=v[pos]; v[pos]=v[i]; v[i]=app; } } } }



Rispondi Citando






