Alguem me ajuda com isso aqui por favor :c [RESOLVIDO]

1. Alguem me ajuda com isso aqui por favor :c [RESOLVIDO]

Jeffersson
blow5

(usa Ubuntu)

Enviado em 05/08/2014 - 12:58h



#include<stdio.h>
#include<locale.h>
main()
{
float n1,n2,resultado ;
char op;
setlocale(LC_ALL,"Portuguese");
printf("Quais os numeros?\n");
scanf("%f%f",&n1,&n2);
printf("Selecione sua opção:\n");
printf("(a) para adição\n");
printf("(s) para subtração\n");
printf("(d) para divisão\n");
printf("(m) para multiplicação\n");
scanf("%s",&op);
switch(op)
{
case 'a':
resultado= n1+n2;
printf("A soma dos dois numeros é:%f ",resultado);
break;
case 's':
resultado=n1-n2;
printf("A subtração dos dois numeros é:%f ",resultado);
break;
case 'd':
resultado=(n1/n2);
printf("A divisão dos dois numeros é:%f ",resultado);
break;
case 'm':
printf("A multiplicação dos dois numeros é:%f ",resultado);
break;
default:
printf("Opção não existente");
}
}


/\ Galera é o seguinte,meu professor pediu pra fazermos um algoritmo,q dependendo do operador pegue dois numeros e faça a operação escolhida,ta ate ai tudo bem,so que n entendi porque eu usando um caracter ao invés de ter q usar "%c" tenho q usar "%s" para o algoritmo funcionar? antes eu tinha testado com "%C" e depois de muito pesquisar,vi q usavam o "%s", com o "%c" o algoritmo n executa a condição,com "%s" ele executa normalmente...
alguem me tira essa duvida? ainda sou iniciante

ps.1. ja usei o code blocks,o falcon, o dev, e sempre se colocar o "%c" n executa a condição

ps.2. ja utilizei o gnu fortran,o borland,minGW,mas n adianta :c



  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 05/08/2014 - 13:35h

Boa tarde.

O que ocorreu no seu caso é um problema bem conhecido em linguagem C: Você precisa limpar o buffer do teclado. Para entender o que é buffer veja [1].

Uma solução para o seu caso é adicionar a função getchar() antes da linha scanf("%s",&op); (linha 15). Fazendo isso você pode usar %c no lugar de %s.

Só uma observação: Após a linha 30 você esqueceu de fazer a multiplicação dos dois números.

Quando postar seus códigos coloque entre as tags ["code"] e ["/code"] (sem as aspas), para melhor visualização e indentação. Procure indentar os seus códigos também, isso é uma prática essencial no desenvolvimento de sofwares.

[1]https://www.youtube.com/watch?v=W-X2_v4Oyx8

O seu código bem indentando e corrigido (erros de sintaxe e não de lógica) ficaria assim:


#include <stdio.h>
#include <locale.h>

int main()
{
float n1,n2,resultado ;
char op;
setlocale(LC_ALL,"Portuguese");

printf("Quais os numeros?\n");
scanf("%f%f",&n1,&n2);
printf("Selecione sua opção:\n");
printf("(a) para adição\n");
printf("(s) para subtração\n");
printf("(d) para divisão\n");
printf("(m) para multiplicação\n");
getchar();
scanf("%c", &op);
switch(op)
{
case 'a':
resultado= n1+n2;
printf("A soma dos dois numeros é:%f ",resultado);
break;
case 's':
resultado=n1-n2;
printf("A subtração dos dois numeros é:%f ",resultado);
break;
case 'd':
resultado=(n1/n2);
printf("A divisão dos dois numeros é:%f ",resultado);
break;
case 'm':
resultado = n1 * n2;
printf("A multiplicação dos dois numeros é:%f ",resultado);
break;
default:
printf("Opção não existente");

}

return 0;
}


Bons estudos!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts