Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda em Divisão...


Guest --Ervilha --

Pergunta

Guest --Ervilha --

Ae, galera, preciso de uma ajuda estou fazendo essa divisão com laços de repetição, e preciso de uma ajuda, quando digito um numero negativo ele da uma conta astronomica, como resolvou isso...

#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void main(void)
{

float dividendo, divisor, quociente;
 char resposta = 's';

    do
    {

   dividendo = 0;
   divisor = 0;
    quociente = 0;

   printf("          ");cprintf(" ******************************************************* \r\n");
    printf("          ");cprintf(" * Opcao 6: Divisao de 2 numeros em laco de repeticao: * \r\n");
    printf("          ");cprintf(" ******************************************************* \r\n");
   printf("\n Entre com o dividendo: ");
     scanf("%i",÷ndo);
    printf(" Entre com o divisor: ");
     scanf("%i",&divisor);

      if(divisor==0)
      {
        printf("\n Divisao impossivel");
      }

      else
      {
      while(dividendo>=divisor)
      {
        dividendo = dividendo - divisor;
        quociente = quociente + 1;}
        printf("\n\n Resultado da divisao: %i", quociente);
      }

  cprintf("\r\n\n\n\n Deseja Continuar S/N? :");
  scanf( "\n %c", &resposta );
  clrscr();
  }
  while( resposta == 's' || resposta == 'S');
}

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Guest --Ervilha --
scanf("%i",÷ndo);

printf(" Entre com o divisor: ");

scanf("%i",&divisor);

ta errado a linha de cima...

scanf("%f",&ndo);

printf(" Entre com o divisor: ");

scanf("%f",&divisor);

Veja se Solucionou o Problema

Não resolveu ;( fui eu que nas minhas tentativas de acertar a coisa esqueci de voltar o int lá no lugar do float...

O problema é não aceitar numeros negativos.

Link para o comentário
Compartilhar em outros sites

  • 0

while(dividendo>=divisor)   {
        dividendo = dividendo - divisor;
        quociente = quociente + 1;
      }
Se dividendo < 0 (-5), divisor < 0 (-10) : >> Dividendo = -5+10 = 5 , Quociente = 1 >> Dividendo = 5 + 10 = 15, Quociente = 2 >> Dividendo = 15+10 = 25 , Quociente = 3 Se dividendo > 0 (5), divisor < 0 (-10): >> Dividendo = -5 + 10 = 5, Quociente = 1 >> Dividendo = 5+10 = 15, Quociente = 2 >> Dividendo = 15 + 10 = 25 , quociente = 3 Se dividendo < 0 (-10), divisor > 0 (5): Não realiza a divisão porque a condição do while é falsa O problema está no while.
while (abs(dividendo)>=abs(divisor)) {
   dividendo = (dividendo <0 && divisor >0 || dividendo > 0 && divisor <0)? dividendo+divisor:dividendo - divisor;
   quociente = quociente + 1;
}
if (divisor > 0 && dividendo <0 || dividendo > 0 && divisor <0)
   quociente*=-1;

Veja se isso resolve.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...