Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gRoOvE

sair do laço

Recommended Posts

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

mas como capitura as entradas do usuario?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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
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

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

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

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

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

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

você qr q esse 3000 sera computado e depois pare o laço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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
printf("Digite um numero: ");
	scanf("%d",&numero);
	if (numero == 3000)
	   break;

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.