50> Dato un array v dimensionato DIM=10 ordinare gli elementi limitatamente alla posizione del max e del min.
Se il min precede il max ordinamento crescente
altrimenti decrescente.
ES: 1 5 3 9 8 5
^ ^
1 3 5 9 8

ES: 2 9 3 7 8 1
^ ^
2 9 8 7 3 1
#include <stdio.h>
#define DIM 10

void visualizza(int []);
int trovamax(int []);
int trovamin(int []);
int main(){
    //int v[DIM]={2,9,5,7,2,1,6,4,6,5}; //esempio ordine decrescente
    int v[DIM]={2,1,5,7,2,1,9,4,6,5}; //esempio ordine crescente
    int posmax,min,i,j,box;
    visualizza(v);
    posmax=trovamax(v);
    min=trovamin(v);
    if(posmax<min){
        for(i=posmax;i<min;i++){
            for(j=posmax+1;j<min;j++){
                if(v[j-1]<v[j]){
                    box=v[j-1];
                    v[j-1]=v[j];
                    v[j]=box;
                }
            }
        }
    } else {
        for(i=min;i<posmax;i++){
            for(j=min+1;j<posmax;j++){
                if(v[j-1]>v[j]){
                    box=v[j-1];
                    v[j-1]=v[j];
                    v[j]=box;
                }
            }
        }
    }
    visualizza(v);
    return 0;
}

int trovamax(int v[DIM]){
    int max,posmax,i;
    posmax=0;
    max=v[0];
    for(i=1;i<DIM;i++){
        if(v[i]>max){
            max=v[i];
            posmax=i;
        }
    }
    return posmax;
}

int trovamin(int v[DIM]){
    int min,posmin,i;
    posmin=0;
    min=v[0];
    for(i=1;i<DIM;i++){
        if(v[i]<min){
            min=v[i];
            posmin=i;
        }
    }
    return posmin;
}

void visualizza(int v[DIM]){
    int i;
    for(i=0;i<DIM;i++){
        printf("%d ",v[i]);
    }
    putchar('\n');
}
    
  
050.c