gRoOvE 0 Denunciar post Postado Abril 20, 2008 ae galerinha, to com uma duvida aqui... tenho o seguinte codigo: while (numero != 3000) { CORPO DO PROGRAMA } eu quero que quando o usuario for digitando lah na entrada, q quando ele digite o numero: 3000 o laço seja finalizado...testei de varias formas e nao consegui "/ Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Abril 20, 2008 mas como capitura as entradas do usuario? Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Abril 20, 2008 vou postar o codigo todo, eu alterei ele pra como tava antes, mas a ideia eh fazer esse esquema no while nao consegui terminar tb, faltou a media por pares e o percent de impares...se puderem dar uma força, agradeço :D o menor numero tb nao consegui, soh vem lixo na variavel "/ #include "stdafx.h" void main(void) { int contador, qtd,n,numero, soma = 0, media, maiorNum, menorNum, somaPares = 0, impares = 0, qtdPares = 0; contador = 1; printf("Digite quantos termos: "); scanf("%d",&n); while (contador <= n) { if (contador == 1) { maiorNum = numero; menorNum = numero; } printf("Digite um numero: "); scanf("%d",&numero); soma = soma + numero; qtd = contador; media = soma / qtd; if (numero > maiorNum) { maiorNum = numero; } menorNum = 0; if (numero < menorNum) { menorNum = numero; } if(numero % 2 == 0) { somaPares = somaPares + numero; qtdPares = } numero++; contador++; } printf("\nSoma: %d",soma); printf("\nQuantidade: %d",qtd); printf("\nMedia: %d",media); printf("\nMaior Numero: %d",maiorNum); printf("\nMenor Numero: %d",menorNum); printf("\nMedia dos Pares: %d",somaPares / ); printf("\nPercentagem dos impares: %d\n",impares); } Compartilhar este post Link para o post Compartilhar em outros sites
darkchrono 0 Denunciar post Postado Abril 20, 2008 ae galerinha, to com uma duvida aqui... tenho o seguinte codigo: while (numero != 3000) { CORPO DO PROGRAMA } eu quero que quando o usuario for digitando lah na entrada, q quando ele digite o numero: 3000 o laço seja finalizado...testei de varias formas e nao consegui "/ ja tentou usar um do while? do{ //restante do codigo =) scanf("%d",&numero); }while(numero != 3000); ou um if... while(1){//esse while vai ficar rodando infinitamente...so vai parar se usar uma break scanf ("%d",&numero); if (numero == 3000) break; //restante do codigo } Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Abril 20, 2008 o menor numero tb nao consegui, soh vem lixo na variavel preste atenção em um detalhe: if (contador == 1) { maiorNum = numero; menorNum = numero; } Aqui você está pegando lixo da memória. Se o valor de numero for 538693 e você digitar 6 número (34,68,3782,123,973 e -126) já vai sair errado. C não inicializa variáveis automaticamente! int contador, qtd,n,numero, soma = 0, media, maiorNum, menorNum, somaPares = 0, impares = 0, qtdPares = 0; Não declare tudo como se fosse uma tripa. É ruim p/ ler. Tente agrupar as declarações por relação lógica. void main(void) { int contador; int n, numero; int soma = 0; float media; int maiorNum, menorNum; int somaPares = 0, qtdPares = 0; float mediaPares; int qtdImpares = 0; printf("Digite o numero de termos: "); scanf("%d",&n); contador = 1; while(contador<=n) { printf("Digite um numero: "); scanf("%d",&numero); soma += numero; if(contador == 1) { maiorNum = menorNum = numero; } else { if (numero > maiorNum) maiorNum = numero; if (numero < menorNum) menorNum = numero; } if (!(numero%2)) { somaPares += numero; qtdePares++; } else { qtdeImpares++; } contador++; } printf("Soma: %d\n",soma); printf("Quantidade de numeros: %d\n",n); media = soma/(float)n; printf("Média: %f\n",media); printf("Maior numero:%d\n",maiorNum); printf("Menor numero:%d\n",menorNum); printf("Percentagem dos numeros impares: %f\n",qtdeImpares/(float)n); mediaPares = somaPares/(float)qtdePares; printf("Media dos numeros pares:%f\n",mediaPares); } Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Abril 20, 2008 bom respondendo a primeira pergunta sua do while é simples veja, você somente precisa atribuir algum valor a ele antes: printf("Digite um numero"); scanf("%d",&numero); while (numero != 3000) { CORPO DO PROGRAMA // printf("Digite um numero"); scanf("%d",&numero); } []'s Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Abril 20, 2008 darkchrono poderia usar tb, mas a prof pediu pra fazermos com while msm, pra aprender... vlws pelas dicas import, gostei dessa lógica na declaração das variavéis, vou passar a utiliza-lá. O while tentei fazer, dessa forma que você falou quit, da certo...mais como digito o 3000 dentro do while ele vem como numero junto, ai teria que colocar um -3000 neh ?? Da certo, mais ficou meio estranho desse jeito, sei lah hasudahsudhasdsuhsae. Se tiver idéia de alguma outra forma, posta ae :DD Compartilhar este post Link para o post Compartilhar em outros sites
José Enésio 4 Denunciar post Postado Abril 20, 2008 darkchrono poderia usar tb, mas a prof pediu pra fazermos com while msm, pra aprender... vlws pelas dicas import, gostei dessa lógica na declaração das variavéis, vou passar a utiliza-lá. O while tentei fazer, dessa forma que você falou quit, da certo...mais como digito o 3000 dentro do while ele vem como numero junto, ai teria que colocar um -3000 neh ?? Da certo, mais ficou meio estranho desse jeito, sei lah hasudahsudhasdsuhsae. Se tiver idéia de alguma outra forma, posta ae :DD Pois é cara o certo é realizar as operações antes de pedir as informações do usuário no loop, como o quizatemummmm já botou aí: //pede informação do usuario while(info != 3000) { //realiza as operações //pede informação do usuário denovo } //mostra os dados finais Desse jeito quando tu digita 3000 ele não vai contar para o resto do programa os 3000! Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Abril 20, 2008 ta mais ai ele digita a info ali em cima e vai entrar em looping, não tem como sair do looping e voltar para "//pede informação do usuario" novamente, ocorre que esse numero deve ser digitando dentro do looping "/ Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Abril 20, 2008 oq naum entendi na sua pergunta é q do jeito q eu te passei no fim do loop ele vai pedir o numero de novo! tente ser + especifico pra mim te ajudar http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Abril 20, 2008 pq no codigo que você colocou seria digitado um numero fora do looping, certo ?? ai quando entrasse em looping você vai digitando os numeros, ate quando digitar o 3000, que seria o comando pra parar o looping, mas esse 3000 entra como numero junto, como se fosse qq numero digitado anteriormente e nao apenas um numero definido para parar o laço Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Abril 20, 2008 você qr q esse 3000 sera computado e depois pare o laço? Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Abril 20, 2008 eu quero que o 3000 não seja computado, ele sera apenas um numero definido para parar o laço, da msm forma que poderia ser caracter 'q' por exemplo Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Abril 20, 2008 printf("Digite um numero: "); scanf("%d",&numero); if (numero == 3000) break; Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Abril 21, 2008 vou testar import. Queria saber qual critério você usa na organização da declaração das variavéis lá ?? e a indentação tb :) Compartilhar este post Link para o post Compartilhar em outros sites