Guest --Ervilha -- Postado Setembro 30, 2008 Denunciar Share Postado Setembro 30, 2008 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'); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carlos Eduardo Bellotti Postado Setembro 30, 2008 Denunciar Share Postado Setembro 30, 2008 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Ervilha -- Postado Setembro 30, 2008 Denunciar Share Postado Setembro 30, 2008 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 ProblemaNã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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 C/C++ nuts Postado Setembro 30, 2008 Denunciar Share Postado Setembro 30, 2008 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
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...
Link para o comentário
Compartilhar em outros sites
3 respostass 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.