Ir ao conteúdo
  • Cadastre-se

Problema simples com while


yagogehres

Posts recomendados

Olá pessoal, estou tendo uma certa dificuldade em entender o comando while, o programa é bem simples, porém se executo o while(x=1), mesmo que eu informe x como qualquer outro numero o laço continua a se repetir, caso eu altere a expressao de teste, por exemplo while(x==1) ou while(x<2) o programa nem entra no laço e se encerra. Segue abaixo o programa, desde já, obrigado a todos que lerem este post.

#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
int nota[5], i,media=0,x;
while (x=1){
for(i=0;i<5;i++){
printf("Digite a nota do aluno %d\n",i+1);
scanf("%d",&nota[i]);
media+=nota[i];}
printf("A media das notas e: %d\n\n",media/5);
printf("Deseja continuar? sim=1, nao=2\n");
scanf("%d",&x);}
getch();
return 0;
}

Link para o comentário
Compartilhar em outros sites

Cara tenta usar o comando switch em vezes de usar o while.

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <iomanip>

int main()

{

int nota[5], i,media=0,x;

recomeco:

for(i=0;i<5;i++)

{

printf("Digite a nota do aluno %d\n",i+1);

scanf("%d",&nota);

media+=nota;

}

printf("A media das notas e: %d\n\n",media/5);

printf("Deseja continuar? sim=1, nao=2\n"); scanf("%d",&x);

switch(x)

{

case 1:

goto recomeco;

break;

case 2:

exit(0);

break;

}

getch();

}

Link para o comentário
Compartilhar em outros sites

Pessoal, consegui resolver o problema, estou postando aqui para caso alguém tiver a mesma dificuldade. O que acontece é que o programa nem entra no laço while caso a expressao de teste não seja verdadeira. O que eu fiz foi declarar a variavel x=0 e a expressao de teste alterei para while(x<2). Segue abaixo o código.

#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
int nota[5], i,media=0,x=0;
while(x<2){
for(i=0;i<5;i++){
printf("Digite a nota do aluno %d\n",i+1);
scanf("%d",&nota[i]);
media+=nota[i];}
printf("A media das notas e: %d\n\n",media/5);
printf("Deseja continuar? sim=1, nao=2\n");
scanf("%d",&x);
}
getch();
return 0;
}

Obs: Também funciona com "do_while".

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...