Dúvida n00b em C

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();
}
 
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:
#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
 
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.
 
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();
}
 
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
 
Back
Topo