Ir ao conteúdo
  • Cadastre-se

C Função switch, case: cálculo peso relativo


jpaulofsa

Posts recomendados

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

int main(void)
{
	float peso;
	char planeta;
	//digitar o peso do usuário
	printf("digite seu peso em KG na Terra.\n");
	scanf("%/d", peso);
	//digitar o número referente a planeta que deseja saber o peso
	printf("Digite o planeta que deseja saber qual seria seu peso em letras minusculas e sem acento, sendo 1 mercurio, 2 venus, 3 terra, 4 marte, 5 jupter, 6 saturno, 7 urano, 8 netuno, 9 plutao .\n");
	scanf("%c", &planeta);
	//inpicio da função escolha
	switch (planeta) {
		//caso a escolha do planeta seja 1 (mercurio), é feito a mutiplicação do peso em kg na terra por 0,378 (peso * 0,378) 
		case 1:
			peso == peso * 0,378;
			//é escrito na tela o peso do usuário no planeta mercúrio
			printf("seu peso em Mercurio e %f\n", peso);
			break;
		case 2:
			peso == peso * 0,907;
			printf("seu peso em Venus e %f\n", peso);
			break;
		case 3:
			peso == peso * 1;
			printf("seu peso na Terra e %f\n", peso);
			break;
		case 4:
			peso == peso * 0,377;
			printf("seu peso em Marte e %f\n", peso);
			break;
		case 5:
			peso == peso * 2,36;
			printf("seu peso em Jupter e %f\n", peso);
			break;
		case 6:
			peso == peso * 0,916;
			printf("seu peso em Saturno e %f\n", peso);
			break;
		case 7:
			peso == peso * 0,889;
			printf("seu peso em Urano e %f\n", peso);
			break;
		case 8:
			peso == peso * 1,12;
			printf("seu peso em Netuno e %f\n", peso);
			break;
		case 9:
			peso == peso * 0,059;
			printf("seu peso em Plutao e %f\n", peso);
			break;
		//caso seja digitado pelo usuário valor diferente aos anteriores (de 1 a 9) o programa digita na tela opcao invalida
		default:
			printf("opcao invalida.");
	}
	system("pause");
	return 0;
}

Boa noite,

Preciso criar um algoritmo em C que peça para o usuário o peso dele em kg no planeta terra e para qual planeta ele deseja converter o seu peso. o programa deverá realizar os cálculos e devolver o peso no planeta escolhido pelo usuário. os pesos relativos de cada planeta está exposto no algoritmo.

como sou iniciante, estou quebrando a cabeça e não dá certo. o máximo que conseguir chegar foi aí.

o programa não aparece a opção de escolher o planeta que desejo fazer a conversão do peso e também está dando um erro com case 9 (no valor 0,059).

atribuir valores aos planetas, pois quando colocava o nome do planeta o programa dava erro.

 

 

 

 

 

 

 

 

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

Boa noite, geralmente eu sempre coloco muito conceito nas minhas respostas, dessa vez vou ser direto, então segue:

 

1 erro:  usar char no local de int

char planeta; 

scanf("%c", &planeta);

 

o correto:

int planeta;

scanf("%d",&planeta)

 

2 erro: erro de sintaxe

scanf("%/d", peso);

 

o correto:

scanf("%d", &peso);

 

 

3 erro: usar character no switch case

No momento que usar switch(), poderá usar apenas tipos com valores numéricos ou caracteres, e isso esta intimamente ligado aos cases. Seu erro foi usar um tipo char(planeta) e colocar os cases com int(1,2,3,4), o certo:

 

com char planeta:

switch(planeta){

   case '1':

   ...

}

 

com int planeta:

switch(planeta){

  case 1:

  ...

}

 

4 erro: usar == no lugar de =

 

O simbolo == representa igualdade no conceito de possibilidade. Já o simbolo de = significa a mudança de valor de um tipo. Use = para dar valores, e == para condições. Então troque:

peso == peso * 0,059; para

peso = peso * 0,059;

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

@jpaulofsa     se você quiser usar os nome dos planetas como entrada,  então precisa  incluir mais alguns comandos para que o programa reconheça esses nomes, e para sair do programa escreva a palavra sair,    então seu código ficaria assim :

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
int main(void){
	float peso;
	int planet,i;
	char planeta[20];
	do{
        system("cls");
	    //digitar o peso do usuário
	    planet=11;
	    printf("digite seu peso em KG na Terra.\n");
	    scanf("%f",&peso);
	    //digitar o número referente a planeta que deseja saber o peso
	    printf("Digite o planeta que deseja saber qual seria seu peso sem acento, sendo");
	    printf("\n= mercurio,\n= venus,\n= terra,\n= marte,\n= jupter,\n= saturno,\n= urano,\n");
	    printf("= netuno,\n= plutao,\n= Sair .\n");
	    scanf("%s",&planeta);
	    for(i=0;i<strlen(planeta);i++)
            planeta[i]=toupper(planeta[i]);//passa para maiusculas

	    if     (strcmp(planeta,"MERCURIO")==0){planet=1;}
	    else if(strcmp(planeta,"VENUS"   )==0){planet=2;}
	    else if(strcmp(planeta,"TERRA"   )==0){planet=3;}
	    else if(strcmp(planeta,"MARTE"   )==0){planet=4;}
	    else if(strcmp(planeta,"JUPITER" )==0){planet=5;}
	    else if(strcmp(planeta,"SATURNO" )==0){planet=6;}
	    else if(strcmp(planeta,"URANO"   )==0){planet=7;}
	    else if(strcmp(planeta,"NETUNO"  )==0){planet=8;}
	    else if(strcmp(planeta,"PLUTAO"  )==0){planet=9;}
	    else if(strcmp(planeta,"SAIR"    )==0){planet=0;}
	    //inpicio da função escolha
	    switch( planet ){
		    //caso a escolha do planeta seja 1 (mercurio), é feito a mutiplicação do peso em kg na terra por 0,378 (peso * 0,378)
		    case 1:
			    peso = (peso * 0.378);//usa ponto e nao virgula
			    //é escrito na tela o peso do usuário no planeta mercúrio
			    printf("seu peso em Mercurio e %.2f\n", peso);
			    break;
		    case 2:
			    peso = peso * 0.907;//usa ponto e nao virgula
			    printf("seu peso em Venus e %.2f\n", peso);
			    break;
		    case 3:
			    peso = peso * 1;
			    printf("seu peso na Terra e %.2f\n", peso);
			    break;
		    case 4:
			    peso = peso * 0.377;//usa ponto e nao virgula
			    printf("seu peso em Marte e %.2f\n", peso);
			    break;
		    case 5:
			    peso = peso * 2.36;//usa ponto e nao virgula
			    printf("seu peso em Jupter e %.2f\n", peso);
			    break;
		    case 6:
			    peso = peso * 0.916;//usa ponto e nao virgula
			    printf("seu peso em Saturno e %.2f\n", peso);
			    break;
		    case 7:
			    peso = peso * 0.889;//usa ponto e nao virgula
			    printf("seu peso em Urano e %.2f\n", peso);
			    break;
		    case 8:
			    peso = peso * 1.12;//usa ponto e nao virgula
			    printf("seu peso em Netuno e %.2f\n", peso);
			    break;
		    case 9:
			    peso = peso * 0.05;//usa ponto e nao virgula
			    printf("seu peso em Plutao e %.2f\n", peso);
			    break;
		        //caso seja digitado pelo usuário valor diferente aos anteriores (de 1 a 9) o programa digita na tela opcao invalida
            case 0:
                printf("Saindo Do Programa     Tecle\n");
                getch();
                return 0;
		    default:
			    printf("opcao invalida.");
	    }
        printf("Tecle Para Voltar Ao Menu");getch();
	}while(planeta != 0);
	return 0;
}

 

  • Curtir 3
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...