10/02/12 15:41
Daviducci0
Sono riuscito in parte a modificare tutto il codice iniziale con i sottoprogrammi ma continua ad esserci un errore in fase di run causandomi un force closed:
(Mi sa che sbaglio nel creare "int *vet e il char *path nel main"
(Mi sa che sbaglio nel creare "int *vet e il char *path nel main"
#include <iostream> #include <fstream> #include <cstdlib> using namespace std; void carica_vet(char*, int*, int &); void stampa_vet(int*, int &); void ricerca_max(int*, int &, int &, int &); int main() { char *path[256]; //Dichiaro variabili int *vet[100]; int riemp = 1; int max; int contatore = 0; carica_vet(path[256], vet[100], riemp); stampa_vet(vet[100], riemp); ricerca_max(vet[100], riemp, max, contatore); system("pause"); return 0; } void carica_vet(char path[], int vet[], int &riemp) { //Inserimento da tastiera del percorso del file da aprire cout <<"Inserire nome del file da aprire:" << endl; cin >> path; // Apro il file fstream f; f.open(path, ios::in); if (!f) // Controllo file { cout << "Errore nell'apertura del file" << endl;; exit(-1); } //Inserisco elementi dal file nel vettore f >> vet[0]; while (!f.eof()) //Continua finché non trovi l'end of file f >> vet[riemp++]; //Inserisci elementi nel vettore riemp--; f.close(); //Chiudo File } void stampa_vet(int vet[], int &riemp) { cout <<"Il vettore inserito e':" << endl; for(int i = 0; i < riemp; i++) { cout << vet[i] << endl; } } void ricerca_max(int vet[], int &riemp, int &max, int &contatore) {//Ricerca del Massimo max=vet[0]; for(int i = 0; i < riemp; i++) { if (vet[i] > max) max = vet[i]; } //Calcolo ripetizione del massimo for (int i=0;i<riemp;i++) { if (vet[i] == max) contatore++; } // Stampa valore massimo trovato e della sua ripetizione cout <<"Il valore massimo e':" << max << " ed e' ripetuto " <<contatore << "volte." << endl; }
Ultima modifica effettuata da Daviducci0 10/02/12 15:43
aaa