0
I am trying to calculate the note average of an array in which I made dynamic allocation, but the following error appears:
line 66- [Error] invalid Conversion from 'int*' to 'int' [-fpermissive]
line 66- [Error] Too few Arguments to Function 'int media(int, int*)'
#include <stdio.h>
#include <stdlib.h>
int media(int n, int *pN);
int main(void) {
int *pA, *pN; //criando ponteiros para os vetores
int i,j;
int qtdAlunos,notas;
int media_notas;
//Aqui dou inicio ao vetor de alunos.
printf("Numero de alunos: ");
scanf("%d", &qtdAlunos);
pA = (int *)(malloc(qtdAlunos * sizeof(int)));
for (i = 0; i< qtdAlunos; i++)
{
printf("Digite o numero referentes aos alunos: [%d] = ", i);
scanf("%d", &pA[i]);
}
//percorrendo o vetor para mostar os valores armazenados
for (i = 0; i< qtdAlunos; i++)
{
printf("\nAlunos: [%d] = %d", i, pA[i]);
}
//Agora estarei criando valores do vetor nota
printf("\n\n");
printf("Quantas notas? ");
scanf("%d", ¬as);
pN = (int*)(malloc(notas * sizeof(int)));
for (j = 0; j<notas; j++)
{
printf("Digite as notas: [%d] = ", j, pN[j]);
scanf("%d", &pN[j]);
}
//percorrendo o vetor para mostrar valores de notas
for (j = 0; j<notas; j++)
{
printf("\nNotas: [%d] = %d", j,pN[j]);
}
//chamada da função
media_notas = media(pN);
scanf ("\nMedia = %.1f \n", media_notas);
system("pause");
return 0;
}
int media (int n, int *pN)
{
int j;
int m = 0, soma = 0;
for ( j = 0; j < n; j++ )
soma = soma + pN[j];
m= soma / n;
return m;
}
Note that you use
media_notas = media(pN);
but defined the media function with 2 parameters, the amount of elements and the array, I believe it should be:media_notas = media(notas, pN);
.– anonimo