Ho trovato l'errore! Usando un po' di breakpoint passaggio per passaggio, ho notato che quando il numero massimo era già nella sua posizione, il "pos=i", essendo valido solo nella if(Max<Vett), non veniva considerato, quindi il pos rimaneva del valore precedente! Questo è quello corretto:
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
int pos, MAX, i, A, Vett[12];
Vett[0]=3;
Vett[1]=6;
Vett[2]=9;
Vett[3]=5;
Vett[4]=7;
Vett[5]=0;
Vett[6]=1;
Vett[7]=4;
Vett[8]=2;
Vett[9]=8;
Vett[10]=9;
Vett[11]=5;
//Ordine da Vett[0]
MAX=Vett[0];
for (i=1;i<12;i++){
if(MAX<Vett){
MAX=Vett;
pos=i;
}
}
if(Vett[0]==MAX){
pos=0;
}
A=Vett[0];
Vett[0]=MAX;
Vett[pos]=A;
//Fine
//Ordine da Vett[1]
MAX=Vett[1];
for (i=2;i<12;i++){
if(MAX<Vett){
MAX=Vett;
pos=i;
}
}
if(Vett[1]==MAX){
pos=1;
}
A=Vett[1];
Vett[1]=MAX;
Vett[pos]=A;
//Fine
//Ordine da Vett[2]
MAX=Vett[2];
for (i=3;i<12;i++){
if(MAX<Vett){
MAX=Vett;
pos=i;
}
}
if(Vett[2]==MAX){
pos=2;
}
A=Vett[2];
Vett[2]=MAX;
Vett[pos]=A;
//Fine
//Ordine da Vett[3]
MAX=Vett[3];
for (i=4;i<12;i++){
if(MAX<Vett){
MAX=Vett;
pos=i;
}
}
if(Vett[3]==MAX){
pos=3;
}
A=Vett[3];
Vett[3]=MAX;
Vett[pos]=A;
//Fine
//Ordine da Vett[4]
MAX=Vett[4];
for (i=5;i<12;i++){
if(MAX<Vett){
MAX=Vett[i];
pos=i;
}
}
if(Vett[4]==MAX){
pos=4;
}
A=Vett[4];
Vett[4]=MAX;
Vett[pos]=A;
//Fine
//Ordine da Vett[5]
MAX=Vett[5];
for (i=6;i<12;i++){
if(MAX<Vett[i]){
MAX=Vett[i];
pos=i;
}
}
if(Vett[5]==MAX){
pos=5;
}
A=Vett[5];
Vett[5]=MAX;
Vett[pos]=A;
//Fine
//Ordine da Vett[6]
MAX=Vett[6];
for (i=7;i<12;i++){
if(MAX<Vett[i]){
MAX=Vett[i];
pos=i;
}
}
if(Vett[6]==MAX){
pos=6;
}
A=Vett[6];
Vett[6]=MAX;
Vett[pos]=A;
//Fine
//Ordine da Vett[7]
MAX=Vett[7];
for (i=8;i<12;i++){
if(MAX<Vett[i]){
MAX=Vett[i];
pos=i;
}
}
if(Vett[7]==MAX){
pos=7;
}
A=Vett[7];
Vett[7]=MAX;
Vett[pos]=A;
//Fine
//Ordine da Vett[8]
MAX=Vett[8];
for (i=9;i<12;i++){
if(MAX<Vett[i]){
MAX=Vett[i];
pos=i;
}
}
if(Vett[8]==MAX){
pos=8;
}
A=Vett[8];
Vett[8]=MAX;
Vett[pos]=A;
//Fine
//Ordine da Vett[9]
MAX=Vett[9];
for (i=10;i<12;i++){
if(MAX<Vett[i]){
MAX=Vett[i];
pos=i;
}
}
if(Vett[9]==MAX){
pos=9;
}
A=Vett[9];
Vett[9]=MAX;
Vett[pos]=A;
//Fine
//Ordine da Vett[10]
MAX=Vett[10];
for (i=11;i<12;i++){
if(MAX<Vett[i]){
MAX=Vett[i];
pos=i;
}
}
if(Vett[10]==MAX){
pos=10;
}
A=Vett[10];
Vett[10]=MAX;
Vett[pos]=A;
//Fine */
cout<<Vett[0]<<", "<<Vett[1]<<", "<<Vett[2]<<", "<<Vett[3]<<", "<<Vett[4]<<", "<<Vett[5]<<", ";
cout<<Vett[6]<<", "<<Vett[7]<<", "<<Vett[8]<<", "<<Vett[9]<<", "<<Vett[10]<<", "<<Vett[11]<<", "<<endl;
system("pause");
return 0;
}
Grazie a tutti!