Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Ruka284

Substituir a divisao e a multiplicaçao pela soma e a subtraçao

Mensagens Recomendadas

Ruka284

O que acham que esta mal?

Podem assinalar os erros.


#include<stdio.h>
#include <stdlib.h>
int main ()
{

int num1,num2,resultado=0;
int op,resp;
int  i=0;
printf("o menu abaixo indicado com as operacoes	\n");
printf("So existem duas operacoes a 1 e a 2   \n");
printf("1 para somar   \n");
printf("2 para subtrair   \n");
scanf("%d",&op);
printf ("introduza o numero   \n");
scanf("%d",&num1);
printf ("introduza o numero   \n");
scanf("%d",&num2);

switch(op)
{
case (1): for (i=0;i<num1;i++){
resultado=resultado+num2;
printf("\n O resultado e: %d   \n",resultado);
}
break;

case (2):do
{
	resultado=resultado-num2;
 i--;
	printf("\n O resultado e: %d   \n",resultado);
} while (i > num1);
break;
default:printf("opcao invalida\n");
	exit(EXIT_FAILURE);
	break;
}

getchar ();



}

Editado por Ruka284

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

O teu programa nao tem erros de sintaxe (ou seja: compila correctamente e nao tem construcoes ilegais que o facam terminar quando corre).

O que perguntaste, simplificando, é mais ou menos que perguntar se o codigo a seguir esta correcto

a = 0;

Obviamente que o codigo acima nao tem erros de sintaxe ... mas é preciso saber o que era suposto fazer para saber se esta correcto. Se fosse para "meter a idade do programador na variavel a" quase de certeza que estava incorrecto (programadores novinhos!!!).

Tirando erros de sintaxe, o codigo que apresentaste nao é coerente no espacamento usado para indentacao; usa parentesis redundantes nos cases, nao define os parametros da funcao main, define a variavel resp que nunca usa.

Alem disso, no case 2 faz um ciclo que, segundo tudo leva a crer, nao é o desejado (mas sem saber qual é o comportamento desejado ...)


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Ruka284

o problema e este .

Construa um programa em C que por opção do utilizador permita calcular//

//o produto entre 2 nuneros inteiros positivos, sem utilizar a operação de multiplicação//

//o resultado da divisão entre 2 nuumeros inteiros positivos. Não pode utilizar os operadores "/ " e " * "//

//Deve utilizar o mecanisno relativo switch.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

Os prints dentro dos loops nao sao nada simpaticos.

Tu compilaste e correste o programa?

Que numeros experimentaste?

Qual foi o resultado?

Experimenta dividir 18 por 6 ---> o resultado deve dar 3; e nao um numero negativo :)


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

Hmmm ... se eu pedir a um programa para me dizer a multiplicacao de 14 por 5 espero qualquer coisa como o primeiro resultado, e nada como o segundo

O resultado e 70.

O resultado e: 14   

O resultado e: 28   

O resultado e: 42   

O resultado e: 56   

O resultado e: 70   


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Ruka284

Hmmm ... se eu pedir a um programa para me dizer a multiplicacao de 14 por 5 espero qualquer coisa como o primeiro resultado, e nada como o segundo

O resultado e 70.

O resultado e: 14

O resultado e: 28

O resultado e: 42

O resultado e: 56

O resultado e: 70 

Achas que esta mal ?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

Como resultado final, para apresentar ao professor, acho que esta mal.

Como resultado intermedio, se o usaste para verificar se o programa se estava a portar bem, nao esta mal.

Podes usar a mesma tecnica para averiguar o que se passa no case 2. Imprime tambem o valor intermedio da variavel i

case (2):do
       {
               resultado=resultado-num2;
        i--;
               printf("\n O resultado e: %d   \n",resultado);
               printf("O valor de i e: %d\n", i);
       } while (i > num1);
break;


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.