Como fazer comparação de maior em c

Comparar o tamanho de strings é uma função comum na programação da linguagem C, pois ela permite verificar qual delas contém mais caracteres. Tal recurso é muito útil para ordenar dados. Comparar strings requer uma função especial; não use != ou ==.

  1. 1

    Na linguagem C, existem duas funções que permitem comparar strings. Ambas as funções fazem parte da biblioteca <string.h>.

    • strcmp() : Essa função compara duas strings e retorna a diferença no número de caracteres.
    • strncmp() : Semelhante à função strcmp(), exceto que esta compara os n primeiros caracteres das strings. Ela é considerada uma função mais segura, pois ajuda a evitar que ocorra overflow.

  2. 2

    Inicie o programa com as bibliotecas necessárias. Você vai precisar das bibliotecas <stdio.h> e <string.h>, juntamente com todas as outras bibliotecas necessárias para o programa.

    #include <stdio.h> #include <string.h>

  3. 3

    Inicie com a função .int. Esta é a forma mais fácil de aprender a função, já que ela retornará um valor inteiro que compara o tamanho das duas strings.

    #include <stdio.h> #include <string.h> int main () { }

  4. 4

    Defina as duas strings que você deseja comparar. Para este exemplo, iremos comparar duas strings char. Defina também o valor retornado como um inteiro.[1] X Fonte de pesquisa Ir à fonte

    #include <stdio.h> #include <string.h> int main () { char *str1 = "melancia"; char *str2 = "laranja"; int ret; }

  5. 5

    Inclua a função escolhida. Agora que você tem as duas strings definidas, adicione a função para compará-las. Neste exemplo, usaremos strncmp(), portanto devemos definir na função o número de caracteres que serão comparados.

    #include <stdio.h> #include <string.h> int main () { char *str1 = "melancia"; char *str2 = "laranja"; int ret; ret = strncmp(str1, str2, 6); /*Aqui, a função irá comparar os 6 primeiros caracteres */ }

  6. 6

    Use a estrutura .if...else para fazer a comparação. Depois de incluir a função no seu código, use a estrutura if...else para exibir qual das duas strings é maior. A função strncmp() retornará o valor 0 se as strings tiverem o mesmo comprimento, um número positivo se str1 for maior e um número negativo se str2 for maior.

    #include <stdio.h> #include <string.h> int main () { char *str1 = "melancia"; char *str2 = "laranja"; int ret; ret = strncmp(str1, str2, 6); if(ret > 0) { printf("str1 é maior"); } else if(ret < 0) { printf("str2 é maior"); } else { printf("As duas palavras são iguais"); } return(0); }

  • Lembre-se de que, se as strings forem iguais, o valor retornado será 0. Isso pode confundir, já que esse valor numérico também representa o valor lógico FALSE.

Você pode insirir os dados de entrada em um std::set, que é um container ordenado, e então basta pegar o primeiro elemento (menor) e o último elemento (maior).

#include <iostream> #include <set> int main( [[maybe_unused]] int argc, [[maybe_unused]] char ** argv ) { // a inicialização é para simular a entrada de dados std::set<float> numbers = { 100.1, 23.3, 84.3, -1.4, 1234.5, /* ... */ 40.22 }; std::cout << "Min:" << *numbers.begin() << std::endl; std::cout << "Max:" << *numbers.rbegin() << std::endl; return 0; }

Bem vindo a aula 52 de nosso curso gratuito de programação com a linguagem C. Na aula de hoje vamos praticar com o exercício 1.

Baixe aqui a lista de exercícios.

1) Escreva um programa em C que leia três valores e apresente qual é o maior e qual é o menor.

Lembre-se que você não aprende a programar apenas assistindo aula e/ou copiando algoritmos. Você precisa tentar resolver os problemas propostos para desenvolver seu raciocínio lógico.

Aqui irei propor duas soluções para resolver este problema. Caso a sua solução esteja um pouco diferente, não se preocupe com isso desde claro que seu programa apresente a solução correta no final. Lembre-se sempre que existem diversas variações para se resolver o mesmo problema.

Primeira solução:

int main() { int a, b, c, menor, maior; printf("Digite tres valores: "); scanf("%d%d%d", &a, &b, &c); // encontrando o menor if(a < b){ if(a < c) menor = a; else menor = c; } else{ if(b < c) menor = b; else menor = c; } // encontrando o maior if(a > b){ if(a > c) maior = a; else maior = c; } else{ if(b > c) maior = b; else maior = c; } printf("Primeira versao\tMenor: %d\tMaior: %d\n", menor, maior); }

Segunda versão:

int main() { int a, b, c, menor, maior; printf("Digite tres valores: "); scanf("%d%d%d", &a, &b, &c); /* segunda versão variáveis menor e maior são inicializadas com o primeiro valor */ menor = a; maior = a; if(menor > b) menor = b; if(menor > c) menor = c; if(maior < b) maior = b; if(maior < c) maior = c; printf("Segunda versao\tMenor: %d\tMaior: %d\n", menor, maior); }

Se você está aprendendo com este curso,:

  • Se inscreva no canal…
  • Pressione o sininho para ser notificado…
  • Deixe seu like (assim saberei que gostou, além de me incentivar a continuar)
  • Apresente o canal à seus amigos!

SÃO VOCÊS QUE FAZEM O CANAL CRESCER!

Valeu!!!

Última postagem

Tag