Pesquisar este blog

Livros Recomendados

sábado, 20 de março de 2021

URI (BEECROWD) - 2826 - Léxico - Iniciante - C e C++

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)

Problema2826

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;
}

Código em C++:

#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

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas