Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

CarlosAdriano

Armazenar caractere digitado com scanf()

Recommended Posts

Olá pessoal.

Estou aprendendo C e encontrei o seguinte problema: nesse programa que estou tentando fazer, parece que scanf() não está armazenando o caractere digitado na variável "operacao". Podem me dizer o que está errado ? Obrigado !

#include<stdio.h>
main(){
	double numero = 0;
	double segundonumero = 0;
	double resultado = 0;
	char operacao;
	
	printf("Calculadora\n");
	printf("%1.0lf\n", resultado);
	while(!numero)
		scanf("%lf", &numero);

	printf("%lf\n", numero);

	while(!((operacao == "+") || (operacao == "-") || (operacao == "*") || (operacao == "/"))) 
		scanf("%c", &operacao); //AQUI

	printf("%lf %c\n", numero, operacao);
	while(!segundonumero)
		scanf("%lf", &segundonumero);
	
	printf("%lf %c %lf\n", numero, operacao, segundonumero);

	if(operacao == "+")
		resultado = (numero + segundonumero);
		
	else if(operacao == "-")
		resultado = (numero - segundonumero);
		
	else if(operacao == "*")
		resultado = (numero * segundonumero);
	
	else if(operacao == "/")
		resultado = (numero / segundonumero);
		
	printf("%lf %c %lf = %lf\n", numero, operacao, segundonumero, resultado);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro está na linha 17:

while(!((operacao == "+") || (operacao == "-") || (operacao == "*") || (operacao == "/")))

Pra caractere é aspas simples. Exemplo: '+'

Compartilhar este post


Link para o post
Compartilhar em outros sites
Fabiano Amaral

 

Quando a variável é criada, ela vem com um o caractere " " (Espaço). Na hora da condição, irá atender na boa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.