Ir ao conteúdo

Ajuda aqui nesse codigo


fdsmello

Posts recomendados

Postado

Escreva um programa para ler 2 valores inteiros e uma das seguintes operações a serem executadas (codificada da seguinte forma: 1.Adição, 2.Subtração, 3.Divisão, 4.Multiplicação). Calcular e escrever o resultado dessa operação sobre os dois valores lidos. Observação: Considere que só serão lidos os valores 1, 2, 3 ou 4.

#include <stdio.h>

main()

{
int va1 =0,va2=0,res=0,op=0;


printf("Digite dois numeros e em seguida escolha a opcao a ser deseja realizar");
scanf("%d %d",&va1,&va2);
printf("digite [1] para adicao, [2] subtracao, [3] mutiplicacao,[4] divisao \n");
scanf("%d", &op);
if (op == 1){
res = va1+va2;
printf("A soma entre %d e %d e %d",va1,va2,res);
}

else {
if(op ==2){
res= va1-va2;
printf("A subtracao entre %d e %d e %d",va1,va2,res);
}
else{
if(op ==3){
res = va1*va2;
printf("A mutiplicacao entre %d e %d e %d",va1,va2,res);
}
}
// Aqui começa o erro a da erro
else{(op == 4)
while (va2 = 0){ /* não sei se esta certo mais eu quero que ele repita se va2 for igual a 0*/
printf(" digite um numero diferente de 0 par afazer a divisão");
scanf("%d",&va2)
}
res=va1/va2
printf("A divisao entre %d e d% e %d",va1,va2,res);

}

}


Sou novo e estou tentando fazer essa especie de calculadora.

Postado

Esse é um caso onde o "switch case" me parece ser mais fácil...

#include <stdio.h>

main(){
int va1=0,va2=0,res=0,op=0;
printf("\nDois numeros:\n");
scanf("%d %d",&va1,&va2);
printf("[1]-adicao, [2]-subtracao, [3]-mutiplicacao, [4]-divisao\n");
scanf("%d", &op);
while((op==4)&&(va2==0)){
printf("Nao se pode dividir por zero. Escolha outra operacao.\n");
printf("[1]-adicao, [2]-subtracao, [3]-mutiplicacao, [4]-divisao\n");
scanf("%d", &op);
}
switch(op){
case 1: printf("A soma entre %d e %d e ",va1,va2); res = va1 + va2; break;
case 2: printf("A subtracao entre %d e %d e ",va1,va2); res = va1 - va2; break;
case 3: printf("A multiplicacao entre %d e %d e ",va1,va2); res = va1 * va2; break;
case 4: printf("A divisao entre %d e %d e ",va1,va2); res = va1 / va2; break;
}
printf("%d", res);
//getch();
}

Postado

da uma olhada no final das expressões ";" e tambem tem alguns excessos de chaves de escopo,usa else if pra melhorar a clareza do código e como o amigo acima disse,esse é um caso pra ser usado com switch

Postado

Fiz algumas alterações no código, veja se ajuda


#include <stdio.h>

int main(){
int va1 = 0, va2 = 0, res = 0, op = 0;

printf("Digite dois numeros e em seguida escolha a opcao a ser realizada\n\n");
scanf("%d %d", &va1, &va2);
printf("digite [1] para adicao, [2] subtracao, [3] multiplicacao, [4] divisao\n");
scanf("%d", &op);

if(op ==1){
res = va1 + va2;
}else if(op == 2){
res = va1 - va2;
}else if(op == 3){
res = va1 * va2;
}else{
while(!va2){
printf("Digite um numero diferente de 0: ");
scanf("%d", &va2);
}
res = va1 / va2;
}

printf("Resultado = %d\n ",res);
return 0;
}

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!