Para imprimir de trás para frente, é só inverter esse "for", assim:
for (i=21; i>0; i--){
cout<< vetor[i]<<"\n";
}
Pronto, questão 1 resolvida.
Mas, tenho sugestões.
Hmm
Você poderia ter colocado tudo isso dentro de um "for", não? E também é interessante gerar os números de forma aleatória, para ter menos trabalho.
Fazendo algo assim, utilizando o "rand", mas simplesmente usar o rand, ele vai ficar gerando o mesmo valor, para ele gerar valores aleatórios, precisamos de uma semente. A semente, pode ser a hora do computador, para isso, use a função srand(), também precisamos da biblioteca "time.h", e retornar a hora do computador "time(null)".
Ficando assim:
#include <stdio.h>
#include <stdlib.h>
#include <time.h> //biblioteca que precisamos
int main() {
int i;
int num2[20];
srand(time(NULL)); //carinha que pega o tempo do computador
for(i = 0; i < 20; i++)
num2[i] = rand(); //carinha que recebe eles
printf("\n\n");
for(i = 20; i > 0; i--)
printf("%d ", num2[i]); //carinha que imprime eles
printf("\n\n");
return 0;
}
Bem mais limpo, não acha? Pronto, assim ele resolve a sua primeira questão, de forma mais simples, ou não.
E sobre essa, teria alguma dúvida em específico? Só uma sugestão, mas, você pode usar um "if" dentro do "for".