Ir ao conteúdo

Dúvida com estrutura switch


Visitante

Posts recomendados

Postado

Se alguém puder me ajudar a resolver esse exercício de revisão agradeço muito!

Faça um programa que receba dois números e execute as operações listadas a seguir de acordo com a escolha do usuário.

Escolha do Usuário Operação

1 Média entre os números digitados

2 Diferença do maior para o menor

3 Produto entre os números digitados

4 Divisão do primeiro pelo segundo

Se a opção digitada for inválida, mostrar uma mensagem de erro e terminar a execução do programa. Lembre-se de que na operação 4 o segundo número dever ser diferente de zero.

#include <stdio.h>
#include <stdlib.h>
main()
{
int a,b,ma,dif,mul,div;
char op;
printf("Digite um numero: ");
scanf("%d",&a);
printf("Digite outro numero: ");
scanf("%d",&;
printf("Escolha uma opcao: \n",op);
switch(op)
{
case 1: ma=(a+b)/2;
printf("A media e %d \n",ma);
break;
case 2: dif=(a-;
printf("A diferenca e %d \n",dif);
break;
case 3: mul=(a*;
printf("O produto e %d \n",mul);
break;
case 4: div=(a/b);
printf("A divisao da %d \n",div);
break;

default:
printf("Opcao invalida");
}
system("pause");
}


Foi o que consegui fazer! Ele roda mas não dá o resultado que eu quero, alguém sabe o que estou errando? Sou iniciante em programação, por isso peço por gentileza explicar o mais básico possível...

Postado

tudo bem, vamos começar: eu sei como é aprender, mas seu programa está lamentavel :eek:, ai vão algums erros:

1º você você a sintaxe do case está errada:eek:, uma vez que é case 'condição', o comando switch(variavel) pega a variavel e compara com os cases, se nenhum case for igual a variavel, ele vai pro default(se tiver um), mais o case é igual a um if/else:wacko:, se tiver mais de um comando, você tem de abrir chaves.

2º Crie um printf antes do que pede a escolha com as escolhas ou coloque no mesmo:D.

3º Para as opções faça algo tipo 1.soma, 2.subtração, etc, e a variavel op, pode ser um int.

4º Para o problema da divisão, é colocar um if antes da conta para testar as variaveis.

5º Só uma pergunta você quer que o programa acabe apenas se for uma opção inválida?

Dica: Tanto nos cases como nos Ifs você pode declarar variaveis locais(que só funcionam no bloco deles) e diminuir o numero de variaveis do começo do programa.

Postado

É..o código tá meio feinho mesmo.

Por que não algo do tipo:


#include <stdio.h>

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

printf("Digite um inteiro:");
scanf("%d", &a);
printf("Digite outro inteiro:");
scanf("%d", &;
printf("Selecione a operação:");
scanf("%*c%c", &op);

switch(op)
{
case '+':
result = a+b;
break;
case '*':
result = a*b;
break;
default:
break;
}
printf("Resultado:%d\n", result);
scanf("%*c%*c");
return 0;
}

Att. regreth

Postado

Valeu gente, ajudou muito agora sim vi como funciona. Consegui ver meus erros, valeu!

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...