Jump to content

Problemas com um bug no for!


GuMarinho

Recommended Posts

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

int main()
{
        int qntd_alunos,r,i,j;
        double media,reprovados;


        printf("Digite a quantidade total de alunos(0 para sair): ");
        scanf("%d",&qntd_alunos);
        if (qntd_alunos <= 0)
        {
                exit(1);
        }
        else
        {
                  printf("Digite a média de aprovação: ");
                  scanf("%lf",&media);

                  for(i = 1;i >= qntd_alunos;i++)

                 {
                        printf("Digite a nota do %d° aluno: ",i);
                        scanf("%lf",&reprovados);
                        if(reprovados < media)
                        {
                           j += 1;
                        }
                  }



                printf("A quantidade de alunos reprovados foi de(reprovados/total): %d/%d",j,qntd_alunos);

        }

        return 0;

}

Boa noite glr,outro post com problemas na resolução do exercicio da faculdade,dessa vez eu acho que o problema é o C,espero que eu esteja errado kkk,eu escrevi esse codigo pra resolver o exercicio mas ele não entra no for. Ja reescrevi de modos diferente,recompilei e até agr nada. Vocês acham q pode ser um erro  com o compilador ou algo do tipo ou eu estou fazendo besteira?

Desde já agradeço  todas as respostas e peço que tenham paciencia cmg!

PS. Não esta terminado é que eu parei nessa parte msm.

 

 

Link to comment
Share on other sites

Bem vinda, pessoa!

Três dicas ó:

  1. Quando postar código, utilize o botãozinho <> e marca o realce na linguagem que desejar (no teu caso, C). ?
  2. O teu for não deveria ser "menor ou igual"? Por que usou "maior ou igual" aí?
  3. Para abrir o bloco do for, você tem que usar "abre chaves" e não "fecha chaves".

Boa sorte!

Abraço!

Link to comment
Share on other sites

6 horas atrás, GuMarinho disse:

dessa vez eu acho que o problema é o C

1546416036_Capturadetelade2018-05-1403-02-09.thumb.png.7322ba45fe40fe32d5b33b0b5480cd1a.png
 

Recomendo a leitura: http://cars--reviews.com/article43.html
 

O Fernando já disse o que tem de errado no seu código, então o que eu vou fazer é tentar te ajudar a encontrar as falhas por conta própria.
Primeira dica que eu dou é você tentar "executar" o código de cabeça. Olhe o código linha por linha e imagine o resultado apresentado por ele, o valor das variáveis em determinada linha etc.
Sugiro que comece a exercitar isso com códigos básicos e depois vá aumentando a "dificuldade".

Pode parecer bobagem isso, mas a maioria dos bugs eu consigo encontrar sem nem mesmo fazer um teste antes.
Ai caso isso não der frutos, eu uso um debugger.

Um debugger que eu recomendo para C é o Nemiver.
Tem esse debugger online também:
https://www.onlinegdb.com/

Mas eu acho que nesse nível você não precisa se preocupar com debuggers no momento.

Link to comment
Share on other sites

Só o >= que deveria ser <= mesmo. Testa aí meu amigo, clica nesse link aqui (testei no site que o @Felipe.Silva falou).

Aperte   Run lá que você verá que funciona normalmente.

Outra coisa...

Melhora o nome das suas variáveis amigo: 

  • renomeie reprovados para nota ou nota_aluno (use reprovados para contar o número de reprovados, veja abaixo)
  • como na string de apresentação dos dados você usou a terminologia total ao invés de quantidade total, renomeie essa variável qntd_alunos para total e incremente reprovados ao invés de j

Lembre-se de que quanto melhor ficar o seu código, quanto mais inteligível, melhor. A primeira coisa é inteligibilidade, depois vem a otimização e outros ajustes. Sempre que você usar nas tuas mensagens um termo, tenta usar esse mesmo termo para dar nome as variáveis, esse é um bom início. ?

Ex. de como ficaria seu printf no final com essas mudanças:

printf("A quantidade de alunos reprovados foi de(reprovados/total): %d/%d",reprovados,total);

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...