Mais um problema de alinhamento de texto! O problema justificador do Beecrowd! Vou confessar que esse não foi tão simples! Entendi a lógica, mas fazer isso funcionar foi um pouco trabalhoso. Veja abaixo como eu fiz! Acredito que existam várias soluções diferentes para esse problema. Conte nos comentários como ficou a sua solução!
Plataforma: URI (BEECROWD)
Problema: 1273
Enunciado:
Nós temos algumas palavras e queremos justificá-las à direita, ou seja, alinhar todas elas à direita. Crie um programa que, após ler várias palavras, reimprima estas palavras com suas linhas justificadas à direita.
Linguagens: C e C++
Solução:
Código em C++:
#include <iostream> int main() { int n, l = 1; while (1) { std::cin >> n; if (n == 0) break; int maiorTamanho = 0, tamanho, tamanhoDasPalavras[n], espacosEmBranco, contador = 0; char palavra[n][50]; if (l == 0) std::cout << std::endl; l = 0; while (contador < n) { std::cin >> palavra[contador]; int indice = 0; tamanho = 0; while (palavra[contador][indice++] != '\0') tamanho++; if (tamanho > maiorTamanho) maiorTamanho = tamanho; tamanhoDasPalavras[contador++] = tamanho; } contador = 0; while (contador < n) { espacosEmBranco = maiorTamanho - tamanhoDasPalavras[contador]; while (espacosEmBranco--) std::cout << " "; std::cout << palavra[contador++] << std::endl; } } return 0; }
Código em C:
#include <stdio.h> int main() { int n, lock = 1; while (1) { scanf("%d ", &n); if (n == 0) break; int maiorTamanho = 0; int tamanho; int tamanhoDasPalavras[n]; int espacosEmBranco; char palavra[n][50]; int contador = 0; if (lock == 0) printf("\n"); lock = 0; while (contador < n) { scanf("%s", palavra[contador]); int indice = 0; tamanho = 0; while (palavra[contador][indice++] != '\0') tamanho++; if (tamanho > maiorTamanho) maiorTamanho = tamanho; tamanhoDasPalavras[contador++] = tamanho; } contador = 0; while (contador < n) { espacosEmBranco = maiorTamanho - tamanhoDasPalavras[contador]; while (espacosEmBranco--) printf(" "); printf("%s\n", palavra[contador++]); } } return 0; }
Nenhum comentário:
Postar um comentário