aula 77

Exercício 8 | Faça uma calculadora para as 4 operações matemáticas com switch case.

Bem vindo a aula 77 de nosso curso gratuito de programação com a linguagem C.

Na aula de hoje vamos continuar a resolução da nossa lista de exercícios fazendo uma calculadora para as 4 operações matemáticas com switch case.

8) Escreva um programa em C que funcione como uma calculadora. O programa deve apresentar um menu ao usuário da seguinte forma:
1 – Somar
2 – Subtrair
3 – Multiplicar
4 – Dividir
0 – Sair
Uma estrutura do tipo switch deve ser utilizada para realizar cada operação em um case. Após a escolha da operação, dois valores devem ser pedidos ao usuário para realizar a operação escolhida. Se a operação escolhida for a 4 o dividendo não pode ser zero, um novo valor deve ser solicitado. O programa deve funcionar até que o usuário escolha a opção 0 (opção de saída).

Este exercício é mais elaborado podendo ser dividido em partes. O do while externo serve para repetir o código interno até que o usuário digite 0, o valor para sair do programa.

Observe que a impressão do menu e a leitura da opção escolhida devem ficar dentro da repetição, pois devem ser feitos novamente ao final de cada operação, até que seja digitado zero para finalizar.

O if é utilizado para que os dois valores sejam pedidos ao usuário apenas quando ele escolher uma operação matemática válida, não sendo solicitados ao digitar zero ou outro valor inválido.

Por fim temos um switch, realizando cada uma das operações matemáticas em um case diferente. No case 4 temos uma repetição para evitar que seja feita uma divisão por zero.

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

int main() {
    int opcao, num1, num2;

    do {
        printf("\n1 - Soma\n2 - Subtracao\n3 - Multiplicacao\n4 - Divisao\n0 - Sair\n\n");
        scanf("%d", &opcao);

        if(opcao > 0 && opcao < 5){
            printf("Digite dois valores: ");
            scanf("%d%d",&num1, &num2);
        }

        switch(opcao) {
        case 0:
            printf("Saindo...\n");
            break;
        case 1:
            printf("Soma: %d\n", num1 + num2);
            break;
        case 2:
            printf("Subtracao: %d\n", num1 - num2);
            break;
        case 3:
            printf("Multiplicacao: %d\n", num1 * num2);
            break;
        case 4:
            while(num2 == 0) {
                printf("Nao existe divisao por zero!\nDigite outro valor: ");
                scanf("%d", &num2);
            }
            printf("Divisao: %d\n", num1 / num2);
            break;
        default:
            printf("Opcao inválida.\nDigite outra opcao: ");
        }
    } while(opcao != 0);
}

Deixe um comentário

dez + dois =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.