Ir para conteúdo

Arquivado

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

Gustavo Rodrigues Torre

[Resolvido] Comandos loop for, while, do while

Recommended Posts

Laço for:

for (<inicio>;<fim>;<incremento/decremento>) {
	//oq tem q ser feito
}

for (int i=0;i<10;i++) { 
	printf ("%d", i+1);		  //vai imprimir os numeros até 10
}
Laço Enquanto:

while (<condição>) {
	//oq tem q ser feito
}

int i = 0;
while (i<10) {
	printf ("%d",i+1);
	i++;
}

Laço Repita:

do
{
   //oq tem q ser feito
}
while(<condição>);

int i = 0;
do
 {
  printf ("%d", i+1);
  i++; 
}
while (i<10);

Para saber + veja: Laços de repetição em Linguagem C .. baixe um pouco a barra de rolagem para chegar na parte dos laços de repetiçao!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda

Eu estou fazendo uns programas aqui com o laço for

Para aprender um pouco

Qualquer dúvida voltarei a postar no forum

P.s: Teria como colocar um tuturial fizo destes laços de repitação?

Para outras pessoas colocarem as suas dúvidas?

Ou alguns exemplos?

Abraços

Laço for:

for (<inicio>;<fim>;<incremento/decremento>) {
	//oq tem q ser feito
}

for (int i=0;i<10;i++) { 
	printf ("%d", i+1);		  //vai imprimir os numeros até 10
}
Laço Enquanto:

while (<condição>) {
	//oq tem q ser feito
}

int i = 0;
while (i<10) {
	printf ("%d",i+1);
	i++;
}

Laço Repita:

do
{
   //oq tem q ser feito
}
while(<condição>);

int i = 0;
do
 {
  printf ("%d", i+1);
  i++; 
}
while (i<10);

Para saber + veja: Laços de repetição em Linguagem C .. baixe um pouco a barra de rolagem para chegar na parte dos laços de repetiçao!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Podemos usar esse tópico.

 

O loop for como voce deve ter percebido incrementa uma variável, além disso ele inicializa variável e é nesses dois itens que ele se diferencia do while.

No exemplo que o QuitZAMMM passou percebe que o while e o for fazem a mesma coisa, mas o for fica mais customizado por ter essas caracteristicas que citei.

 

Um exemplo do uso do laço for para imprimir as notas de 5 alunos armazenadas num vetor.

 

for(i=0; i<5; i++)
   printf("Nota do aluno %i: %f\n", i, nota[i]);

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu pela dica

Eu vou fazer um monte de exercicios com esses laços para aprender

E se possivel você poderia mudar o Título do Tópico

E colocar fixo

 

Pode ser?

 

Podemos usar esse tópico.

 

O loop for como voce deve ter percebido incrementa uma variável, além disso ele inicializa variável e é nesses dois itens que ele se diferencia do while.

No exemplo que o QuitZAMMM passou percebe que o while e o for fazem a mesma coisa, mas o for fica mais customizado por ter essas caracteristicas que citei.

 

Um exemplo do uso do laço for para imprimir as notas de 5 alunos armazenadas num vetor.

 

for(i=0; i<5; i++)
   printf("Nota do aluno %i: %f\n", i, nota[i]);

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeira dúvida

 

Eu fiz este código mas esta com erro a hora de mostrar a maior idade o que esta errado?

Obs: Na hora de mostrar a menor idade o programa me mostra o valor -10000 colocado na variavel menor.

Como fazer para retirar este erro?

E na parte de mostrar as idades iguais o programa tb apresenta erro.

 

 

/*Menor idade*/
# include<stdio.h>
# include<stdlib.h> 

int c;
int a,iguais;
float menor;
main()
{
menor=-10000;
{
for (c=1;c<=5;c++)
{
printf("\n\n Entre com a sua idade: ");
scanf("%f",&a);
}

	   if (a < menor) 
	   {
	   menor = a;
	   }
	   else
			 if (a = menor)
			 {
			 iguais = iguais + 1;
			 }
}

printf("\n\n A menor idade eh %1.f ",menor);
printf("\n\n A quantidade de pessoas com idade menor eh %1.d ",iguais);
printf("\n\n");

system("pause");
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiramente eu naum entendi isso:

main()
{
menor=-10000;
{
pq você abriw chave depois de dar valor a variavel menor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A primeira chave e do inicio do programa.

 

 

 

 

Ou o programa para ficar com uma aparência melhor deveria ser escrito asim:

Mas mesmo assim ainda estaria com erros?

 

 

/*Menor idade*/
# include<stdio.h>
# include<stdlib.h> 

int c;
int a,iguais;
float menor;
menor=-10000;
main()
{
{ //chave de abertura do for
for (c=1;c<=5;c++)
{
printf("\n\n Entre com a sua idade: ");
scanf("%f",&a);
}

	   if (a < menor) 
	   {
	   menor = a;
	   }
	   else
			 if (a = menor)
			 {
			 iguais = iguais + 1;
			 }
} // Fechamento do for

printf("\n\n A menor idade eh %1.f ",menor);
printf("\n\n A quantidade de pessoas com idade menor eh %1.d ",iguais);
printf("\n\n");

system("pause");
return 0;
}

 

primeiramente eu naum entendi isso:

main()
{
menor=-10000;
{
pq você abriw chave depois de dar valor a variavel menor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha pra deixar bem enxuto eu fiz assim:

#include<stdio.h>
#include<stdlib.h>
main()
{
int a,iguais,c;
float menor;
menor=-10000.0;
for (c=1;c<=5;c++)
{
printf("\n\n Entre com a sua idade: ");
scanf("%f",&a);
if (a < menor) menor = a;
else if (a == menor) iguais++;
}
printf("\n\n A menor idade eh %1.f ",menor);
printf("\n\n A quantidade de pessoas com idade menor eh %1.d ",iguais);
printf("\n\n");
system("pause");
return 0;
}

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou compliar aqui e vou ver o que ocorre

 

 

olha pra deixar bem enxuto eu fiz assim:

#include<stdio.h>
#include<stdlib.h>
main()
{
int a,iguais,c;
float menor;
menor=-10000.0;
for (c=1;c<=5;c++)
{
printf("\n\n Entre com a sua idade: ");
scanf("%f",&a);
if (a < menor) menor = a;
else if (a == menor) iguais++;
}
printf("\n\n A menor idade eh %1.f ",menor);
printf("\n\n A quantidade de pessoas com idade menor eh %1.d ",iguais);
printf("\n\n");
system("pause");
return 0;
}

[]'s

 

Continua mostrando o valor armazenado na variavel menor.

O que esta havendo?

 

Vou compliar aqui e vou ver o que ocorre

 

 

olha pra deixar bem enxuto eu fiz assim:

#include<stdio.h>
#include<stdlib.h>
main()
{
int a,iguais,c;
float menor;
menor=-10000.0;
for (c=1;c<=5;c++)
{
printf("\n\n Entre com a sua idade: ");
scanf("%f",&a);
if (a < menor) menor = a;
else if (a == menor) iguais++;
}
printf("\n\n A menor idade eh %1.f ",menor);
printf("\n\n A quantidade de pessoas com idade menor eh %1.d ",iguais);
printf("\n\n");
system("pause");
return 0;
}

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha agora

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

main()
{
int a=0,iguais=1,c;
int menor=10000;
for (c=1;c<=5;c++)
{
printf("\n\n Entre com a sua idade: ");
scanf("%d",&a);
if (a < menor) menor = a;
else if (a == menor) iguais++;
}
printf("\n\n A menor idade eh %d ",menor);
printf("\n\n A quantidade de pessoas com idade menor eh %d ",iguais);
printf("\n\n");
system("pause");
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só um detalhe.

 

Supondo entradas: 4, 4, 6, 7, 3

 

iguais nesse algoritmo sairia com 3, o que na verdade seria 1 ou nenhum depedende da concepção.

Então toda vez que achar o menor inicialize iguais.

 

if (a < menor){ 
   menor = a;
   iguais = 1;
}

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kandrade o código ficaria assim:

E ainda apresenta erro ao mostrar a menor idade

 

/*Menor idade*/
# include<stdio.h>
# include<stdlib.h> 
# include<math.h> 

int c;
int a,iguais;
int menor=150;
main()
{
{ //chave de abertura do for
for (c=1;c<=5;c++)
{
printf("\n\n Entre com a sua idade: ");
scanf("%f",&a);
}

	   if (a < menor)
	   { 
	   menor = a;
	   iguais = 1;
	   }
	   else
			 if (a = menor)
			 {
			 menor = a; //Isto deveria estar aqui?
			 iguais = iguais + 1;
			 }
} // Fechamento do for

printf("\n\n A menor idade eh %1.d ",menor);
printf("\n\n A quantidade de pessoas com idade menor eh %1.d ",iguais);
printf("\n\n");

system("pause");
return 0;
}

Só um detalhe.

 

Supondo entradas: 4, 4, 6, 7, 3

 

iguais nesse algoritmo sairia com 3, o que na verdade seria 1 ou nenhum depedende da concepção.

Então toda vez que achar o menor inicialize iguais.

 

if (a < menor){ 
   menor = a;
   iguais = 1;
}

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

você esta lendo a entrada como float ao invez de integer

Compartilhar este post


Link para o post
Compartilhar em outros sites

O fechamento do for é depois dos testes. Veja:

 

for (c=1;c<=5;c++)
{
   printf("\n\n Entre com a sua idade: ");
   scanf("%f",&a);
//} nao existe essa linha

	   if (a < menor)
	   { 
		  menor = a;
		  iguais = 1;
	   }
	   else
			 if (a == menor) // = eh para atribuicao, == eh para comparacao.
			 {
				//menor = a; //Isto deveria estar aqui? nao, pois se eh igual menor ja tem o valor correto.
				iguais = iguais + 1;
			 }
} // Fechamento do for

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kandrade eu fiz as devidas alterações e o programa continua me mostrando o valor 150

 

{ //Abertura do for
for (c=1;c<=5;c++)
{
printf("\n\n Entre com a sua idade: ");
scanf("%f",&a);


	   if (a < menor)
	   { 
	   menor = a;
	   iguais = 1;
	   }
	   else
			 if (a == menor)
			 {
			 iguais = iguais + 1;
			 }
} // Fechamento do for

printf("\n\n A menor idade eh %1.d ",menor);
printf("\n\n A quantidade de pessoas com idade menor eh %1.d ",iguais);
printf("\n\n");

system("pause");
return 0;
}

O fechamento do for é depois dos testes. Veja:

 

for (c=1;c<=5;c++)
{
   printf("\n\n Entre com a sua idade: ");
   scanf("%f",&a);
//} nao existe essa linha

	   if (a < menor)
	   { 
		  menor = a;
		  iguais = 1;
	   }
	   else
			 if (a == menor) // = eh para atribuicao, == eh para comparacao.
			 {
				//menor = a; //Isto deveria estar aqui? nao, pois se eh igual menor ja tem o valor correto.
				iguais = iguais + 1;
			 }
} // Fechamento do for

Compartilhar este post


Link para o post
Compartilhar em outros sites

jah disse pra alterar isso:

scanf("%f",&a);
por isso:

scanf("%d",&a);

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.