Ir ao conteúdo

Posts recomendados

Postado

Sempre que coloco um caractere diferente ele continua somando, no exemplo ta sinal de subtração  ' - 'mas mesmo assim ele soma ja tentei colocar if e if if e else e nada funciona, estou a 30min tentando resolver esse erro. me ajudem pfv ❤️

ERRO IF E ELSE.png

  • Amei 2
  • Triste 1
Postado

@laritorres        ele continua somando porque na comparação você colocou hum sinal de igualdade   "   =  "    e com isso ele está apenas adicionando o caractere ' +  ' ao valor da variável  total , e não faz nenhuma comparação ,  e  na linguagem  c   ou    c++ ou   c#   e também na java ,  o sinal de comparação são   Dois  sinais de igual  "  ==   "  e creio que essa comparação de int com caractere não dará bom resultado certo não ,      qual compilador você está usando ?

e seria melhor se você postasse no formato texto , facilitaria bastante   .

  • Curtir 1
  • Amei 1
  • Triste 1
Postado

#include <stdio.h>
	float vA,vB;
	char r;
int main(){
	printf("\nInforme um numero: ");
	scanf("%f", &vA);
	printf("\nInforme outro numero: ");
	scanf("%f", &vB);
	printf("Digite a operação(+)(-)(*)(/))\n"); 
	scanf(" %c", &r); 
    if (r=='+'){
    printf("\n%.2f", (vA + vB));
    }
	else if(r=='-'){
	printf("\n%.2f", (vA - vB));
	}
	else if(r=='*'){
	printf("\n%.2f", (vA * vB));
	}
	else if(r=='/'){
	printf("\n%.2f", (vA / vB));
	}
	else{printf ("opcao invalida\n");
	return main();
	}
}

 

  • Curtir 2
Postado
  Em 18/11/2019 às 09:02, devair1010 disse:

@laritorres        ele continua somando porque na comparação você colocou hum sinal de igualdade   "   =  "    e com isso ele está apenas adicionando o caractere ' +  ' ao valor da variável  total , e não faz nenhuma comparação ,  e  na linguagem  c   ou    c++ ou   c#   e também na java ,  o sinal de comparação são   Dois  sinais de igual  "  ==   "  e creio que essa comparação de int com caractere não dará bom resultado certo não ,      qual compilador você está usando ?

e seria melhor se você postasse no formato texto , facilitaria bastante   .

Expandir  

int main(){
    
    int num1, num2, total, adi, sub, mult, div;
    
    
    printf("Digite um numero: ", num1);
    scanf("%i", &num1);
    printf("Digite outro numero: ", num2);
    scanf("%i", &num2);
    
    printf("Qual operacao matematica você deseja executar?  : ", total);
    scanf("%i", &total);
    
    
    
     if (total='+'){
         adi= num1+num2;
        printf("%i + %i = %i", num1,num2, adi);
    }
     else if (total='-'){
         sub= num1-num2;
        printf("%i - %i = %i", num1,num2, sub);
    }
    else if(total='*'){
        mult= num1/num2;
        printf("%i * %i = %i", num1, num2, mult);
    }
    else if(total='/'){
        printf("%i / %i = %i", num1, num2, div);
    }
//    else if(op=){
//        printf("Caractere Invalido");
//    }

    
    
    return 0;
}

 

ESTOU USANDO O DEV C++ tentei colocar dois '==' mas nao adianta de nada

adicionado 9 minutos depois

@Herbertbahia

  Em 18/11/2019 às 11:09, Herbertbahia disse:

#include <stdio.h>
	float vA,vB;
	char r;
int main(){
	printf("\nInforme um numero: ");
	scanf("%f", &vA);
	printf("\nInforme outro numero: ");
	scanf("%f", &vB);
	printf("Digite a operação(+)(-)(*)(/))\n"); 
	scanf(" %c", &r); 
    if (r=='+'){
    printf("\n%.2f", (vA + vB));
    }
	else if(r=='-'){
	printf("\n%.2f", (vA - vB));
	}
	else if(r=='*'){
	printf("\n%.2f", (vA * vB));
	}
	else if(r=='/'){
	printf("\n%.2f", (vA / vB));
	}
	else{printf ("opcao invalida\n");
	return main();
	}
}

 

Expandir  

o que eu fiz de diferente o seu pegou mas ficou em loop infinito

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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...