2) Faça um programa que implemente uma máquina de calcular simples com operações +, -, *, / e %, através da leitura de dois operandos numéricos e do operador (tipo caracter), no formato: n1,n2 e operacao. A operação de resto somente pode ser efetuada com números inteiros. Utilize as letras X ou x para encerrar a calculadora.
Então, estou com dificuldade para "entender", sacar a lógica. Comecei meu curso recentemente, se possível alguém poderia apontar o meu erro e tentar explicar?
Meu código-fonte:
#include <stdio.h>
#include <locale.h>
void main(){
char operacao;
float n1, n2, total;
int int_n1, int_n2, resto;
int_n1 = n1;
int_n2 = n2;
//Internacionalização
setlocale(LC_ALL, "Portuguese");
//Começo do laço.
do{
printf("Informe o tipo de operação: \n");
scanf(" %c", &operacao);
//Interruptor e casos
switch(operacao){
case ('+'):
printf("Informe o primeiro número: \n");
scanf(" %f", &n1);
printf("Informe o segundo número: \n");
scanf(" %f", &n2);
total = n1 + n2;
printf("O total da adição é: %2.f \n", total);
break;
case ('-'):
printf("Informe o primeiro número: \n");
scanf("%f", &n1);
printf("Informe o segundo número: \n");
scanf("%f", &n2);
total = n1 - n2;
printf("O total da subtração é: %2.f \n", total);
break;
case ('*'):
printf("Informe o primeiro número: \n");
scanf("%f", &n1);
printf("Informe o segundo número: \n");
scanf("%f", &n2);
total = n1 * n2;
printf("O total da multiplicação é: %2.f \n", total);
break;
case ('/'):
printf("Informe o primeiro número: \n");
scanf("%f", &n1);
printf("Informe o segundo número: \n");
scanf("%f", &n2);
total = n1/n2;
printf("O total da divisão é: %2.f \n", total);
break;
//Acredito que meu primeiro erro foi aqui.
//Quero que ele se transforme em números inteiros para achar o resto...
case ('%'):
printf("Informe o primeiro número: \n");
scanf("%d", &int_n1);
printf("Informe o segundo número: \n");
scanf("%d", &int_n2);
printf("O total do resto é: %2.d \n", total = int_n1 % int_n2);
break;
case ('x'):
printf("Fora do sistema");
default:
printf("saída do sistema \n");
break;
}
}while(n1 != 'x'); //Fim do laço
// Não sei a onde encaixar isso, se é dentro do laço, ou dentro do switch, ou fora dos dois.
if(n1 == int_n1) && (n2 == int_n2);{
printf("os n são inteiros")
}
else{
printf("Os n tem casas decimais");
}
}
Pergunta
Johan
2) Faça um programa que implemente uma máquina de calcular simples com operações +, -, *, / e %, através da leitura de dois operandos numéricos e do operador (tipo caracter), no formato: n1,n2 e operacao. A operação de resto somente pode ser efetuada com números inteiros. Utilize as letras X ou x para encerrar a calculadora.
Então, estou com dificuldade para "entender", sacar a lógica. Comecei meu curso recentemente, se possível alguém poderia apontar o meu erro e tentar explicar?
Meu código-fonte:
Grato desde já!
Editado por JohanLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.