Ir ao conteúdo

Posts recomendados

Postado

Estou fazendo um programa que compare 3 strings e coloque eles em ordem alfabética, mas estou tendo dificuldade para fazer isso.

 

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

 

int main(){

 

    int result1, result2;

    char *p1 = malloc(50 * sizeof(char));

    char *p2 = malloc(50 * sizeof(char));

    char *p3 = malloc(50 * sizeof(char));  

 

    printf("Digite tres nomes:\n");

    fflush(stdin);

    gets(p1);

    fflush(stdin);

    gets(p2);

    fflush(stdin);

    gets(p3);

 

    result1 = strcmp(p1, p2);

    result2 = strcmp(p2, p3);

 

    if(result1 < 0 && result2 > 0){

        printf("maior %s-%s-%s", p1, p2, p3);

   

    }else if(result1 > 0 && result2 > 0){

        printf("menor %s-%s-%s", p1, p2, p3);

    }

 

    printf("\n");

   

    return 0;

 

}

  • Curtir 1
Postado

@Luga Ramos Você pode fazer as três comparações e ir substituindo p1, p2 e p3 para deixar na ordem. O primeiro teste pode ser assim,

 

if(strcmp(p1, p2) > 0){
    char *p = p1;
    p1 = p2;
    p2 = p;
}

 

Aí vai substituir p1 com p2 se p1 for maior. Depois compare da mesma forma p2 com p3 e novamente p1 com p2. E no final mostre as strings,

 

printf("%s, %s, %s\n", p1, p2, p3);

 

Obs: Evite usar gets, seu compilador deve ter mostrado um aviso como "gets is deprecated". No lugar use fgets ou scanf com a especificação do tamanho da string.

  • Curtir 1
Postado

    if(strcmp(p1, p2) < 0){
        char *p = p1;
        p1 = p2;
        p2 = p;

    }else if(strcmp(p2, p3) > 0){
        char *p = p2;
        p2 = p3;
        p3 = p;

    }else if(strcmp(p1, p2) > 0){
        char *p = p1;
        p1 = p2;
        p2 = p;
}
Ficaria dessa forma entao?

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!