Ir ao conteúdo
  • Cadastre-se

Utilizando alocamento Duvida (malloc)


David Jordão

Posts recomendados

Alguem sabe me dizer o que estou fazendo de errado no codigo ? não consigo compilar de maneira nenhuma.
relevem minha burrice se o erro for básico haha, estou começando a aprender agora.

 

#include<stdlib.h>
#include <stdio.h>
 
float *v; 
float med;
int i,n;
float media(int alunos, float total);
 
int main (void)
{
printf("Entre com o numero de alunos >>");
scanf("%d",&n);
v = (float *)malloc(n*sizeof(float)); 
if(v == NULL) 
{
printf("memoria cheia\n");
exit(1);
}
for (i=0;i<n;i++)
{
prinft("\n entre com a nota %d",i+1);
scanf("%f",&v);
}
med = media(n,v); // COMPILADOR ACUSA ERRO NESTA LINHA 
printf("a media das notas>> %s", med);
free(v);
return 0;
}
 
float media(int alunos, float total)
{
float resultado,parcial;
for (i=0;i<alunos ;i++)
{
parcial = parcial + total;
}
resultado = parcial/alunos;
return resultado;
}

 

Link para o comentário
Compartilhar em outros sites

Dica: "Compilador acusa erro nessa linha" sem dizer o erro não informa nada.

Compiladores devolvem texto quando há erro de compilação.

 

O problema é que o argumento da função é do tipo float, mas você passa um float * (ponteiro p/ float). Outro detalhe: as variáveis pertencem ao escopo do arquivo (vulgo "global"). Não é necessário passá-las como argumento porque elas estão disponíveis para todos os blocos dentro do arquivo.

 

Outra coisa: a função retorna float e você imprime com %s...

#include <stdio.h>#include <errno.h>#include <string.h>#include <stdlib.h> float calcular_media(float * notas, int alunos); int main (void) {   int numero_alunos;   printf("Informe o numero de alunos: ");   scanf("%d%*c", &numero_alunos);    float * notas = (float *) malloc(numero_alunos * sizeof float);    if (!notas) {       printf("%s\n", strerror(errno)); /* http://linux.die.net/man/3/malloc */       return errno;   }    for (int i = 0; i < n ; i++)  {      prinft("Informe a nota %d", i+1);      scanf("%f%*c",&notas[i]);   }   float media = calcular_media(notas, numero_alunos);   printf("A mèdia das notas é %.2f", media);   free(notas);   return 0;} float calcular_media(float * notas, int alunos) {   float soma = 0.0;   for (int i = 0 ; i < alunos ; i++) {       soma += notas[i];   }   return notas/alunos;}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...