Innanzitutto per farlo partire ti manca la libreria stdio.h senno non puoi eseguire le funzioni clrscr();
L'errore delle parentisi stava che chiudevi gli else interni ma non aprivi bene quelli esterni:
Codice:
if(<condizione>){
if(<condizione>){
<istruzioni>
}else{
<istruzioni>
}
}else{
if(<condizione>){
<istruzioni>
}else{
<istruzioni>
}
}
Poi l'ordinamento non torna. Appena ho visto come hai fatto non ho cercato nemmeno di correggere dato che la soluzione che hai adottato è troppo casinista, perciò prova a trarre aiuto da questo equivalente:
Codice:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
const unsigned int MAX = 10;
void stampa(int[],int,int);
void main(){
int v[MAX],n, tipo_ord, app, i, j;
///////////////////
// Acquisizione //
///////////////////
do{
clrscr();
cout<<"Quanti numeri vuoi ordinare? [max 10]: ";
cin>>n;
}while(n>=MAX);
cout<<"Acquisizione di "<<n<<" numeri."<<endl;
for(i=0; i<n; i++){
cout<<"#"<<i+1<<": ";
cin>>v[i];
}
do{
clrscr();
cout<<"Tipo ordinamento [1=cre; 2=dec]:";
cin>>tipo_ord;
}while(tipo_ord != 1 && tipo_ord != 2);
////////////////////
// Ordinamento //
///////////////////
for(i=0; i<n-1; i++){
for(j=i+1; j<n; j++){
// caso crescente
if(tipo_ord == 1){
if(v[i] > v[j]){
// scambio i due elementi
app = v[i];
v[i] = v[j];
v[j] = app;
}
}
if(tipo_ord == 2){
// caso decrescente
if(v[i] < v[j]){
// scambio i due elementi
app = v[i];
v[i] = v[j];
v[j] = app;
}
}
}
}
stampa(v,n,tipo_ord);
getch();
}
void stampa(int v[], int n, int t){
if(t == 1)
cout<<"Ordinamneto crescente"<<endl;
if(t == 2)
cout<<"Ordinamneto decrescente"<<endl;
for(int i=0; i<n; i++ )
cout<<v[i]<<" ";
cout<<endl;
}