Ir ao conteúdo
  • Cadastre-se

C Receber nome e valor de 5 frutas e mostrar o valor e nome da maior e menor


Posts recomendados

olá pessoal,

estou com uma duvida na minha programação. tenho que fazer uma programação em C que deve receber o nome e valor de 5 frutas e depois mostrar o valor e o nome da fruta menor e maior. se puderem me ajudar. agradeço desde já.

#include<stdio.h>

int main()
{
  float num, maior = 0, menor = 0, y=0;
  char fruta;

    printf("Digite a fruta: ");
    fflush(stdin);
    scanf("%s",&fruta);
  
    printf("Digite o valor: ");
    fflush(stdin);
    scanf("%f",&num);

  menor = num;
  maior = num;

  for( y = 1; y < 5; y++ ){
        
    printf("Digite a fruta: ");
    fflush(stdin);
    scanf("%s",&fruta);

    printf("Digite o valor: ");
    fflush(stdin);
    scanf("%f",&num);

    if(num > maior) maior = num;
    if(num < menor) menor = num;

  }

  printf ("A fruta %s %.2f tem o maior valor\n",fruta,maior);
  printf ("A fruta %s %.2f tem o menor valor\n",fruta,menor);

  return 0;

}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Fabio M. Nascimento Olá. Seria isso:

#include <stdio.h>

#define QTDE 5

void limpa_linha() {
    scanf("%*[^\n]");
    scanf("%*c");
}

int main()
{
    float valor[QTDE], maior = 0, menor = 0;
    char fruta[QTDE][50];
    int indice_maior, indice_menor;
    int i;

    for (i = 0; i < QTDE; i++) {
        printf("Digite a fruta: ");
        scanf("%s", fruta[i]);
        limpa_linha();

        printf("Digite o valor: ");
        scanf("%f", &valor[i]);
        limpa_linha();
    }

    menor = valor[0];
    maior = valor[0];

    for (i = 0; i < QTDE; i++ ) {

        if (valor[i] < menor) {
            menor = valor[i];
            indice_menor = i;
        }

        if (valor[i] > maior) {
            maior = valor[i];
            indice_maior = i;
        }
    }

    printf ("A fruta %s %.2f tem o maior valor\n", fruta[indice_maior], maior);
    printf ("A fruta %s %.2f tem o menor valor\n", fruta[indice_menor], menor);

    return 0;
}

Procure entender o q está sendo feito no código. Se tiver dúvidas pergunte, ok?

Criei uma função para evitar o uso do comando fflush(stdin);. comando esse q não é adequado e nada recomendável para limpar o stdin, ou "sujeira no buffer"

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Complementado:

 

1#

Sobre:

7 horas atrás, giu_d disse:

        if (valor[i] < menor) {
            menor = valor[i];
            indice_menor = i;
        }

        if (valor[i] > maior) {
            maior = valor[i];
            indice_maior = i;
        }

 

Maior e menor são excludentes entre si, logo, usam-se else. Ex.:

        if (valor[i] < menor) {
            menor = valor[i];
            indice_menor = i;
        } else 
            if (valor[i] > maior) {
                maior = valor[i];
                indice_maior = i;
            }

 

 

 

2#

Sobre:

7 horas atrás, giu_d disse:

    printf ("A fruta %s %.2f tem o maior valor\n", fruta[indice_maior], maior);
    printf ("A fruta %s %.2f tem o menor valor\n", fruta[indice_menor], menor);

 

Outra forma seria:

    printf ("A fruta %s %.2f tem o maior valor\n", fruta[indice_maior], valor[indice_maior]);
    printf ("A fruta %s %.2f tem o menor valor\n", fruta[indice_menor], valor[indice_menor]);

 

 

***

 

Link para o comentário
Compartilhar em outros sites

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!