1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Dúvida n00b em C

Discussão em 'Programação' iniciada por noitib, 13 de Junho de 2005. (Respostas: 9; Visualizações: 917)

  1. noitib

    noitib Power Member

    Raramente aqui ponho os pés, mas lembrei-me que por aqui havia uma secção de programação, e sempre deve haver pessoal mais à-vontade do que eu. Obrigado desde já.

    Tou a tentar fazer um programita para calcular médias, e não sei o que estou a fazer mal para a média ser 0

    Se alguém se dignar a ajudar

    Código:
    #include <stdio.h>
    main()
    {
    	float nota[20],media;
    	int num,i;
    	clrscr();
    	printf ("Insira o numero de disciplinas do curso: \n");
    	scanf ("%d",&num);
    	for (i=0;i<num;i++)
    	{
    	      printf ("Introduza o resultado obtido na disciplina %d ",i+1);
    	      scanf ("%f",nota[i]);
    	      media=media+nota[i];
    	}
    	printf ("A m‚dia das suas notas ‚ : %.2f ",media/num);
    	getch();
    }
    
     
  2. zx-9r

    zx-9r Power Member

    não seria media:=media+nota ?

    := -> atribuição

    (mas ja n tenho c há mtos anos :p)
     
  3. noitib

    noitib Power Member

    Mas isso do := acho que era no Pascal
     
  4. Koncaman

    Koncaman Utilizador Saloio

    media += nota
    acho que é +=, n tenho a certeza, mas como tens, ta mal
    se quizeres tirar a prova dos nove, podes fazer um printf ao valor media depois da conta, e vais ver o que contem.
     
    Última edição: 13 de Junho de 2005
  5. #include <stdio.h>
    main()
    {
    float nota=0,media=0;
    int num,i;

    printf ("Insira o numero de disciplinas do curso: \n");
    scanf ("%d",&num);

    for (i=0;i<num;i++)
    {
    printf ("Introduza o resultado obtido na disciplina %d ",i+1);
    scanf ("%f",&nota);

    media=+nota;
    }


    printf ("A média das suas notas é : %.2f ",media/num);

    }


    é desnecessario usares um array pras notas,so estas a limitar o numero de cadeiras
    se quiseres usa um if a seguir a introduzir a nota para testar se é maior q 0 e menor q 20
     
  6. Karmack

    Karmack Power Member

    Esta linha --> scanf ("%f",nota); <-- está mal.

    Podes substituir por isto:
    scanf ("%f", nota + i);

    Ou:

    scanf ("%f", &nota);
     
  7. Nazgulled

    Nazgulled Power Member

    1) não vejo objectivo de guardares as notas todas num vector se logo a seguir somas esse valor noutra variavel, torando assim o vector, obsoleto.

    2) "media = media + nota" é a mesma coisa do que "media += nota" (ou "media =+ nota", não estou a recordar bem a sintaxe correcta)

    o melhor k tens a fazer, é bsicamente usar o programa submetido pelo kusturyca.
     
  8. xBoShY

    xBoShY Power Member

    Código:
    #include <stdio.h>
    main()
    {
    	float nota[20],media=0;
    	int num,i;
    	clrscr();
    	printf ("Insira o numero de disciplinas do curso: \n");
    	scanf ("%d",num);
    	for (i=0;i<num;i++)
    	{
    	      printf ("Introduza o resultado obtido na disciplina %d ",i+1);
    	      scanf ("%f",nota[i]);
    	      media=media+nota[i];
    	}
    	printf ("A m‚dia das suas notas ‚ : %.2f ",media/num);
    	getch();
    }
    
    Como já foi referido... não precisas guardar num vector as notas...
    Código:
    #include <stdio.h>
    main()
    {
    	float nota=0, media=0;
    	int num,i;
    	clrscr();
    	printf ("Insira o numero de disciplinas do curso: \n");
    	scanf ("%d",num);
    	for (i=0;i<num;i++)
    	{
    	      printf ("Introduza o resultado obtido na disciplina %d ",i+1);
    	      scanf ("%f",nota);
    	      media=media+nota;
    	}
    	printf ("A m‚dia das suas notas ‚ : %.2f ",media/num);
    	getch();
    }
    
     
  9. Karmack

    Karmack Power Member

    Esqueceste do & nos scanf's
     
  10. dt3ft

    dt3ft Power Member

    Programa completo e a funcionar:


    #include <stdio.h>
    void main()
    {
    float nota=0, media=0;
    int num,i;
    clrscr();
    printf ("Insira o numero de disciplinas do curso: \n");
    scanf ("%d",&num);
    for (i=1;i<=num;i++)
    /*a confição de paregem de um ciclo for tem de ter SEMPRE = nao me perguntes pk.. mas é assim */
    {
    printf ("Introduza o resultado obtido na disciplina %d \n",i);
    scanf ("%f",&nota); /* esqueceste no & aqui, pode ser importante */
    /* para ter a certesa que o programa está a ler bem podes meter aqui um printf do nota e ficas com a certesa que isto tá a ler bem */
    media+=nota; /* aqui tás a meter a media toda numa unica variavel*/
    }
    printf ("A média das suas notas ‚ : %.2f \n",media/num);
    getch();
    }


    se tiveres duvidas deixa pm

    dt3ft
     

Partilhar esta Página