Programma stupidissimo in C.
Cosa c'è di sbagliato in questo programma? Non riesco a compilarlo, ma spero sia un problema che non dipende da me. Ho rincontrollato, ma non riesco a trovare nessun errore. Il file "dati.dat" esiste ed è una stringa di numeri su un'unica riga. Il primo è 5, il numero di elementi, gli altri 5 successivi sono le componenti del vettore v[].
Vi ringrazio!
#include <iostream>
#include <fstream>
using namespace std;
int main(){
int v[500],N;
ifstream input;
ofstream output;
input.open("dati.dat");
output.open("risultato.dat");
input >> N;
for(int m=0,m<N,m++) input >> v[m];
cout<<"Vettore non ordinato [ ";
for(int m=0,m<N,m++) cout<<v[m]<<" ";
cout<<" ]"<<endl;
//Ordinamento senza funzione:
int c;
for(int i=0,i<N,i++)
for(int j=i+1,j<N+1,j++)
if(v[i]>v[j]){
c=v[i];
v[i]=v[j];
v[j]=c;
}
//Vettore ordinato:
for(int u=0,u<N,u++) cout<<v<<" ";
return 0;
}
Vi ringrazio!

Risposte
Il problema è che separi i campi dei for con una virgola invece che con un punto e virgola.
Prima di tutto, questo è C++ e non C (se fosse in C praticamente tutto il codice sarebbe sbagliato). Sono due linguaggi differenti. Inoltre è decisamente raro che il problema sia del compilatore, è molto più probabile che l'errore sia nel tuo codice (anche se non lo trovi). In particolare:
questo non è il modo corretto di scrivere un ciclo for. Le parti del ciclo devono infatti essere separate da punti e virgola e non da virgole. Per cui quel ciclo deve diventare
for(int m=0,m<N,m++)
questo non è il modo corretto di scrivere un ciclo for. Le parti del ciclo devono infatti essere separate da punti e virgola e non da virgole. Per cui quel ciclo deve diventare
for(int m=0; m<N; m++)
Fantastico! Vi ringrazio molto.
