Ir ao conteúdo

Posts recomendados

Postado

Estou fazendo uma calculadora para cálculos simples(subtrair, somar, dividir, multiplicar). Mas não estou compreendendo os erros que estão acontecendo.

Acredito que seja no switch, pois é a primeira vez que utilizo uma variável char para escolha do case. 

 

 

 

 

 

 

#include<stdio.h>

 

float soma(float num1, float num2){
  float resultado;
  resultado = num1 + num2;
  return(resultado);
}
float divide(float num1, float num2){
  float resultado;
  resultado = num1 / num2;
  return(resultado);
}
float multiplica(float num1, float num2){
  float resultado;
  resultado = num1 *num2;
  return(resultado);
}
float subtrai(float num1, float num2){
  float resultado;
  resultado = num1 - num2;
  return(resultado);
}

void main(){

 

char ch = '0';
char i;
float n1, n2, resultado;

 

while(ch != n){
  
  printf("Qual operação voce deseja fazer? \n S= somar d= dividir m= multiplicar s= subtrair\n");
  scanf("%c", &i);
  
  switch(i){
    case S:
       printf("Digite o primeiro numero:\n");
       scanf("%f", &n1);
       printf("Digite o segundo numero:\n");
       scanf("%f", &n2);
       resultado = soma(n1,n2);
       printf("O resultado é %f\n", resultado);
       break;
       
    case s:
      
        printf("Digite o primeiro numero:\n");
        scanf("%f", &n1);
        printf("Digite o segundo numero:\n");
        scanf("%f", &n2);
        resultado = subtrai(n1,n2);
        printf("O resultado é %f\n", resultado);
        break;
        
    case d:
        
        printf("Digite o primeiro numero:\n");
        scanf("%f", &n1);
        printf("Digite o segundo numero:\n");
        scanf("%f", &n2);
        resultado = divide(n1,n2);
        printf("O resultado é %f\n", resultado);
        break;
        
    case m:
        
        printf("Digite o primeiro numero:\n");
        scanf("%f", &n1);
        printf("Digite o segundo numero:\n");
        scanf("%f", &n2);
        resultado = multiplica(n1,n2);
        printf("O resultado é %f \n", resultado);
        break;
        
    default:
         printf("Opção invalida.");
  }
  
  printf("Deseja fazer mais alguma operacão?\n S/N ");
  scanf("%c", &ch);
  
  
}

}

 

 

 

Gostaria de saber também se eu posso usar estar condição no while " while(ch != n || ch != N)"

Agradeço desde já

 

 

 

 


 

Postado

Você pode simplificar o retorno das funções e no switch como você esta usando um char tem que usar aspas simples, para esse caso melhor usar um do while.

 

#include<stdio.h>

float soma(float num1, float num2)
{
	return(num1 + num2);
}

float divide(float num1, float num2)
{
	return(num1 / num2);
}
float multiplica(float num1, float num2)
{
	return(num1 * num2);
}
float subtrai(float num1, float num2)
{
	return(num1 - num2);
}

int main()
{	
	char i, ch;
	float n1, n2, resultado;

	do {

		printf("Qual operação voce deseja fazer? \n + = somar / = dividir * = multiplicar - = subtrair\n");
		scanf(" %c", &i);
		
		printf("Digite o primeiro numero:\n");
		scanf("%f", &n1);
		printf("Digite o segundo numero:\n");
		scanf("%f", &n2);

		switch(i) {
			case '+':				
				resultado = soma(n1,n2);				
				break;

			case '-':				
				resultado = subtrai(n1,n2);				
				break;

			case '/':				
				resultado = divide(n1,n2);				
				break;

			case '*':				
				resultado = multiplica(n1,n2);				
				break;

			default:
				printf("Opção invalida.");
		}
		
		printf("O resultado é %f \n", resultado);

		printf("Deseja fazer mais alguma operacão?\n S/N ");
		scanf(" %c", &ch);
		

	} while(ch=='s' || ch=='S');

}

 

 

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!