Ir ao conteúdo

Posts recomendados

Postado
#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
Postado

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 2
Postado

@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 2

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!