Pesquisar este blog

Livros Recomendados

Mostrando postagens com marcador 2826. Mostrar todas as postagens
Mostrando postagens com marcador 2826. Mostrar todas as postagens

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

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