logicamente, visto che uso il C(o Java), e il C++ lo conosco pochino, ti potrei dire, considerando il fatto che il numero di asterischi può essere dinamico(cioè puoi inserire 7 numeri tipo: 1, 5,1000000,1230 etc... se non ho capito male) di farti una matrice[(MAX +1),7] dove 7 è il numero di COLONNE(e di numeri che devi immettere) e MAX + 1(RIGHE) con MAX il massimo numero immesso
(ricerca del massimo è una semplice funzione lineare)
dopodiche:
uso un codice C che mi è + familiare cmq lo puoi trasportare in C++
codice:
#define MAXIMM 7 //il numero massimo di numeri da immettere
int numeri[MAXIMM]... /*qui inserisci i numeri immessi è scritto male ma si capisce*/
int max = ... /*qui ci metti il massimo tra i numeri inseriti prima nel
vettore lo trovi utilizzando una banale funzione di ricerca del massimo*/
int matrice[max+1][MAXIMM];
int i, j, count; //indici
/*inserisco nell'ultima riga della matrice i numeri immessi*/
for(j = 0; j< MAXIMM;j++){
matrice[max][i] = numeri[i];
}
/*per ogni colonna inserisco partendo da indice di riga i = (max -1) gli asterischi*/
for(j = 0; j<MAXIMM;j++){
/*contatore di asterischi che devo memorizzare
in questa var di appoggio perchè verra decrementato nel ciclo sotto*/
count = matrice[max][j];
i = (max - 1); //indice di riga che vedo dal basso all'alto
while((count > 0) && (i >= 0)){
matrice[i][j] = '*';
i--;count--;
}
}
/*stampa*/
for(i = 0; i<(max+1);i++){
for(j = 0; j<MAXIMM;i++){
if(i = max) //stampo i numeri finali
printf("%d ", matrice[i][j]);
else //stampo il char
printf("%c ", matrice[i][j]);
}
}
scusami se è in C... ma la logica dovrebbe funzionare...
ciauz