O Natal e o Ano Novo aproximam-se e porque não dar-lhes as boas vindas completando um desafio em C++?
O objetivo é criar um programa que faz output da mensagem:
"Feliz Natal!Feliz 2020!"
Mas em vez de escrever direto, vai fazendo vários outputs, começando no carácter do meio ("!"), e a cada nova linha de output adicionando mais 1 carácter de cada lado, de modo a criar uma árvore de natal.
Ou seja, 1 carácter, 3 carácteres, 5 carácteres... Começando no centro.
1
212
32123
Se a mensagem fosse "hello", o programa faria:
l
ell
hello
A última linha deve então conter a mensagem completa "Feliz Natal! Feliz 2020!".
Será que consegues?
Output esperado:
! l!F al!Fe tal!Fel atal!Feli Natal!Feliz Natal!Feliz z Natal!Feliz 2 iz Natal!Feliz 20 liz Natal!Feliz 202 eliz Natal!Feliz 2020 Feliz Natal!Feliz 2020!
Minha solução:
#include <iostream> using namespace std; int main() { string message = "Feliz Natal!Feliz 2020!"; //A mensagem tem 23 carácteres, 11 para cada lado, um no meio //Loop principal (linha a linha) for(int i = 0; i < 12; i++){ //Escrever os espaços (depende do número da linha) for(int space = 11; space > i; space--){ cout << " "; } //Escrever os carácteres à esquerda do centro for(int left = i; left > 0; left--){ cout << message[11-left]; } //Escrever o "!", carácter central cout << message[11]; //Escrever os carácteres à direita do centro for(int right = 1; right <= i; right++){ cout << message[11+right]; } //Finalizar a linha, criando uma nova em baixo cout << endl; } }
O desafio e solução são de completa autoria minha.
Quaisquer dúvidas que tenham fico muito feliz por responder e ajudar!
Referências
Sem comentários:
Enviar um comentário
Comente de forma construtiva...
Nota: só um membro deste blogue pode publicar um comentário.