1. Faça um programa utilizando o comando “switch”. O programa deve se comportar como uma calculadora, onde o operador escolhe entre as operações soma (+), subtração (-), multiplicação (*), divisão (/), potência ( { }^{\wedge} ), e raiz quadrada ( r ). 0 programa deve apresentar todas as opções no inicio e o operador escolhe a operação desejada digitando o simbolo entre parenteses. O programa deve então ler os dois números, realizar a operação e reiniciar o processo até que o operador escolha uma operação inválida (qualquer outro símbolo ou letra).

Passo 1

O enunciado pede um programa em C que funcione como uma calculadora, usando o comando switch para escolher entre as operações soma, subtração, multiplicação, divisão, potência e raiz quadrada. Precisamos de um laço que repita o menu até o usuário digitar um símbolo inválido.

Passo 2

Criamos um laço infinito (por exemplo while (1)) em que, a cada iteração, exibimos o menu com as opções:
(+) soma
(-) subtração
(*) multiplicação
(/) divisão
(^) potência
® raiz quadrada
E lemos um caractere op com scanf(" %c", &op);

Passo 3

Fazemos um switch(op) com casos para cada operação. Nos casos de +, -, *, / e ^ lemos dois números (double a, b;), executamos a operação e imprimimos o resultado. Para o caso r lemos apenas um número (double a;), calculamos a raiz e imprimimos.

Passo 4

No case default do switch, detectamos operação inválida e encerramos o programa com return 0;. Assim o laço pára quando o usuário digita qualquer outro símbolo.

Passo 5

Usamos as funções da biblioteca <math.h>:
\text{pow}(a,b)
para potência e \text{sqrt}(a) para raiz quadrada. Incluímos também checagens simples de erro (divisão por zero e raiz de número negativo).

Resposta

#include <stdio.h>
#include <math.h>

int main() {
 char op;
 double a, b;

 while (1) {
 printf("Selecione a operacao:
");
 printf("(+) Soma
");
 printf("(-) Subtracao
");
 printf("(*) Multiplicacao
");
 printf("(/) Divisao
");
 printf("(^) Potencia
");
 printf("(r) Raiz quadrada
");
 printf("Qualquer outro simbolo para sair.
");
 printf("Opcao: ");
 scanf(" %c", &op);

 switch (op) {
 case '+':
 printf("Digite dois numeros: ");
 scanf("%lf %lf", &a, &b);
 printf("Resultado: %.2lf

", a + b);
 break;

 case '-':
 printf("Digite dois numeros: ");
 scanf("%lf %lf", &a, &b);
 printf("Resultado: %.2lf

", a - b);
 break;

 case '*':
 printf("Digite dois numeros: ");
 scanf("%lf %lf", &a, &b);
 printf("Resultado: %.2lf

", a * b);
 break;

 case '/':
 printf("Digite dois numeros: ");
 scanf("%lf %lf", &a, &b);
 if (b \(==0\)) {
 printf("Erro: divisao por zero.

");
 } else {
 printf("Resultado: %.2lf

", a / b);
 }
 break;

 case '^':
 printf("Digite a base e o expoente: ");
 scanf("%lf %lf", &a, &b);
 printf("Resultado: %.2lf

", pow(a, b));
 break;

 case 'r':
 printf("Digite um numero: ");
 scanf("%lf", &a);
 if (a < 0) {
 printf("Erro: raiz de numero negativo.

");
 } else {
 printf("Resultado: %.2lf

", sqrt(a));
 }
 break;

 default:
 printf("Operacao invalida. Encerrando programa.
");
 return 0;
 }
 }

 return 0;
}

Exercícios relacionados