Buongiorno a tutti, sto facendo un esercizio sugli algoritmi di ordinamento, in questo caso per sostituzione, il codice è questo:
#include<iostream>
#define n 5
using namespace std;
void scambio(int& a, int& b){
int aux=a;
a=b;
b=aux;
}
void oridnamento (int a[], int n){
int i,j;
for( i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j])
scambio(a[i],a[j]);
}
void stampa (int a[],int n){
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<"\n";
}
int main () {
int a[5]={12,34,23,45,67};
cout<<"array non ordinato"<<endl;
stampa(a,n);
oridnamento(a,n);
cout<<"array ordinato"<<endl;
stampa(a,n);
return 0;
}
Il problema è che se utilizzo il #DEFINE per n il compilatore mi da questo errore "xpected ‘,’ or ‘...’ before numeric constant
#define" mentre se dichiaro normalmente
const int n=5;
funziona tutto perfettamente. Qualcuno sa dirmi perchè in questo caso non posso usare la macro? grazie a tutti e buon fine settimana