Veja aqui a solução para o exercício intitulado Léxico. Vou te mostrar como você pode obter o aceite neste exercício em duas linguagens, C e C++. Bora saber como? Dá uma olhada na sequência desse post!
Plataforma: URI (BEECROWD)
Problema: 2826
Linguagens: C e C++
Solução:
A solução utilizada segue o mesmo padrão lógico em C e C++.
Código em C:
#include <stdio.h> #include <stdlib.h> int getTamanho(char *palavra) { int indice = 0; while (palavra[indice] != '\0') indice++; return indice; } int main() { char *palavra1 = (char *) malloc(sizeof(char) * 21); char *palavra2 = (char *) malloc(sizeof(char) * 21); int tamanho1, tamanho2, menor, flagResposta = 0, indice = 0; scanf("%s", palavra1); scanf("%s", palavra2); tamanho1 = getTamanho(palavra1); tamanho2 = getTamanho(palavra2); menor = (tamanho1 < tamanho2)? tamanho1 : tamanho2; while (indice < menor) { if (palavra1[indice] > palavra2[indice]) { flagResposta = 2; break; } else if (palavra1[indice] < palavra2[indice]) { flagResposta = 1; break; } indice++; } if (flagResposta == 2 || (flagResposta == 0 && tamanho2 < tamanho1)) printf("%s\n%s\n", palavra2, palavra1); else if (flagResposta == 1) printf("%s\n%s\n", palavra1, palavra2); return 0; }
#include <iostream> using namespace std; int getTamanho(string palavra) { int indice = 0; while (palavra[indice] != '\0') indice++; return indice; } int main() { string palavra1, palavra2; int tamanho1, tamanho2, menor, flagResposta = 0, indice = 0; getline(cin, palavra1); getline(cin, palavra2); tamanho1 = getTamanho(palavra1); tamanho2 = getTamanho(palavra2); menor = (tamanho1 < tamanho2)? tamanho1 : tamanho2; while (indice < menor) { if (palavra1[indice] > palavra2[indice]) { flagResposta = 2; break; } else if (palavra1[indice] < palavra2[indice]) { flagResposta = 1; break; } indice++; } if (flagResposta == 2 || (flagResposta == 0 && tamanho2 < tamanho1)) cout << palavra2 << endl << palavra1 << endl; else if (flagResposta == 1) cout << palavra1 << endl << palavra2 << endl; return 0; }
Nenhum comentário:
Postar um comentário