Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Como faço para comparar um char dentro do IF neste programa?

// Não consegui fazer o programa armazenar o S ou o N e depois utilizá - lo no if, para continuar o programa ou sair do mesmo. Neste caso, utilizei a comparação por números ---> printf("Deseja realizar outra operacao? S = 2 ou N = 3?\n"); scanf("%d", &op); //Como posso fazer? Alguma idéia?

//o programa começa aqui:

include

include

include

include

int main(){

float a, b ,c, x1, x2; int op, S;

while(S = 1){

printf("Digite os coeficientes da equacao do segundo grau:\n"); scanf("%f %f %f",&a, &b, &c);

x1 = ((-b+sqrt((b)(b) - 4ac))/(2a)); x2 = ((-b-sqrt((b)(b) - 4ac))/(2a));

printf("O resultado eh: x1 = %.2f e x2 = %.2f\n", x1,x2); printf("Deseja realizar outra operacao? S = 2 ou N = 3?\n"); scanf("%d", &op);

if(op == 3){ break; } else{ continue; } } getch(); return(0);

}

4 respostas

Oi Vinicius, para ler o char nesse programa, você precisaria usar o scanf("%c", &op) em vez de usar o %d que é para um dígito.

Você pode usar o == mesmo no if para comparar o char, ficaria por exemplo:

if(op == 'S')

Abraços!

Então, Philippe, mesmo fazendo isso, o programa ignora e já pergunta de novo quais são os coeficientes da equação do segundo grau. Tem alguma ideia do que possa ser?

solução!

Oi Vinicius, tenta colocar um espaço antes do %c?

ficaria assim: scanf(" %c", &op)

o espaço em branco no começo faz com que o scanf leia o primeiro caractere que não é um espaço em branco na linha.

abraços!

Muito obrigado, Philippe!! Funcionou perfeitamente!