Ir para conteúdo
Fórum Script Brasil
  • 0

Calculos Diversos


CafeComLeite

Pergunta

Galera, to com um problema , utilizo a IDE Dev C++ para desenvolver meus primeiros softwares em C (Sim, Linguagem C).

Eu entendo bem os conceitos e lógica de programação e consigo realizar o mesmo procedimento em java, porém, meu professor quer trabalhar com C no momento, já refiz esse programa diversas vezes e a cada momento da um erro diferente, no caso, agora não aparece a operação que o usuário precisa digitar.

O software consiste no seguinte:

o usuário entra com dois números, e em seguida, ele escolhe a operação a se realizar, então utilizei uma estrutura de switch (No caso da divisão, também deverá ser exibido o resto da mesma, já que faz mais sentido do que fazer uma operação separada).

Sem enrolação, esse é meu código:

#include <stdio.h>
#include <stdlib.h>

/** Este programa tem por objetivo realizar cálculos diversos através
da inserção de dois números, inseridos unicamente pelo usuário*/

main() 
{
 int n1, n2, total;   
 char  operacao;    

 printf ("Digite o primeiro numero\n");
 scanf ("%i", &n1); //o número digitado pelo usuario é atribuído na variável n1

 printf ("Digite o segundo numero\n");
 scanf ("%i", &n2); //o número digitado pelo usuário é atribuído na variável n2

 printf ("Digite o operador desejado:\n(+) para somar,\n(-) para subtrair,\n(x) para multiplicar,\n(/) para dividir\n");
 scanf ("%c", &operacao); //o operador escolhido é atribuído na variável operacao

  
 printf ("Os seguintes parametros serao considerados:\nNumero 1: %i\nNumero 2: %i\nOperador: %c\n", n1, n2, operacao);

 system ("PAUSE"); 

 switch (operacao) {
        case '+':
             total = n1 + n2;
             printf ("%i", total);
        case '-':
             total = n1 - n2;
             printf ("%i", total);
        case 'x':
             total = n1 * n2;
             printf ("%i", total);
        case '/':
             total = n1 / n2;
             int resto = n1 % n2;
             printf ("%i, %i", total, resto);
        
 }
}

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Limpe o buffer de entrada antes de ler o caractere que representa a operação a ser realizada. Aquele printf() deixou um caractere que será lido automaticamente pelo scanf(), se você não limpar o buffer.

E ainda, após você realizar o cálculo de cada 'case' do switch(), deve colocar um 'break'. Se não colocar, todos os cálculos serão realizados.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...