Jump to content
Guest

[Resolvido] Filtrar valores

Recommended Posts

Guest

[Problema Resolvido]

Desenvolva um programa que receba uma quantidade indefinida de informação sobre o peso de pessoas e que mostre na consola a quantidade de pessoas entre 50 ≤ peso < 80.

Reflita acerca da melhor condição de paragem para este caso.

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	double peso;
	int contador = 0;
	
	printf("Insira um peso: ");
	scanf("%lf", &peso);
	
	while(peso > 0){
		if(peso >= 50 && peso < 80){
			contador++;
		}
			printf("Insira um peso: ");
			scanf("%lf", &peso);
	}
	printf("\nA quantidade de pessoas com peso superior ou igual a 50 e inferior a 80 sao: %d", contador);	
	return 0;
}

 

Edited by Guest

Share this post


Link to post
Share on other sites
PsySc0rpi0n

Tens que começar por apresentar a tua sugestão de código e a partir daí a malta ajuda-te a melhorar e a cumprir com o que é pedido!


Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Share this post


Link to post
Share on other sites
Guest
4 minutos atrás, PsySc0rpi0n disse:

Tens que começar por apresentar a tua sugestão de código e a partir daí a malta ajuda-te a melhorar e a cumprir com o que é pedido!

Done

Share this post


Link to post
Share on other sites
PsySc0rpi0n

E esse código funciona, dá erros ou onde tens dúvidas? Ou não funciona?

Nota: O forum permite inserir código com syntax highllight.

Exemplo:

int pede_peso(void){
	float peso = 0;
  	scanf(" %d", &peso);
  	printf("Peso: %d\n", peso);
}

 

  • Vote 1

Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Share this post


Link to post
Share on other sites
Guest

Já consegui desenvolver o programa, Obrigado.

Já editei o tópico com a resolução do mesmo

 

Edited by Guest

Share this post


Link to post
Share on other sites
PsySc0rpi0n

Pelo que percebo, A intenção é mostrar quantos pesos inseridos estão dentro daquela condição e não mostrais quais os pesos que respeitam a condição.

Se for apenas mostrar quantos pesos cumprem a condição, o código é mais simples. Senão teremos que usar um vector para armazenar os valores todos e depois varrer esse vector à procura dos valores que cumprem a condição.

Mas caso seja a primeira opção, um algoritmo possível é:

1- Pedir pesos até inserir por exemplo -1 ou 0.

2 - Verificar se o peso inserido cumpre a condição.

3 - Se cumprir, incrementar um contador, senão, voltar a pedir mais pesos.

4 - Após a condição de paragem for detectada, imprimir o número de pesos que cumprem a condição.

Para ajudar, fica um possível começo para o código:

int main(void){
	float peso = 0.0;
	int contador = 0;
  
	do{
    	//pede valores
      	//verifica se cumpre a condição
      	//se sim, incrementa o contador
    }while(//até inserir -1 ou 0);
	
    //imprime quantos valores cumprem a condição
	return 0;
}

 

Nota: Esta abordagem não irá mostrar os pesos inseridos!

 

Edited;

Atenção ao uso da função  scanf(). No teu código, acho que vai dar problemas pois o scanf() vai "comer o '\n' que fica no buffer do teclado!

O teu código deve funcionar se usares o scanf() assim:

scanf(" %d", &peso);

Repara no espaço antes do '%d'.

Edited by PsySc0rpi0n

Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Share this post


Link to post
Share on other sites
PsySc0rpi0n

Visto que o teu código é suposto funcionar apenas com a alteração do uso da função scanf(), fica aqui a minha sugestão:

#include <stdio.h>

int main(int argc, char** argv){
   float peso = 0.0;
   int conta = 0;

   do{
      printf("Insira o peso: ou \'0\' ou \'-1\' para sair:\n");
      scanf(" %f", &peso);
      if(peso >= 50.0 && peso <= 80.0)
         conta++;
   }while(peso > 0);
   printf("Há %d pesos compreendidos entre 50Kg e 80Kg!\n", conta);

   return 0;
}

 


Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.