Jump to content
  • 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

Recommended Posts

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 ();



}

Edited by Ruka284

Share this post


Link to post
Share on other 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!

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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!

Share this post


Link to post
Share on other sites
Ruka284

Na parte da soma, não detectei nenhum erro , na subtracção acho que ha erro

Share this post


Link to post
Share on other 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!

Share this post


Link to post
Share on other 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 ?

Share this post


Link to post
Share on other 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!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.