Erro 'incompatible pointer type'
Boa noite galera,
Iniciante no C e se alguém puder me dar uma ajuda.
O programa pega os dados de pacientes, usa uma função para achar o "fator" e usa esse fator multiplicado pela idade para gerar o CA(condicionamento aeróbico). Devo usar estruturas, alocação dinâmica e ponteiro. Não consigo entender o erro.
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char nome[30];
int idade;
float nbcr;
float nbca;
} TPaciente;
void lerDados(TPaciente *P, int n);int resistencia (TPaciente *P, int n); // Nessa linha aparece a seguinte mensagem de erro -> [Warning] passing argument 1 of 'resistencia' from incompatible pointer type
int main(){
TPaciente *g; // declarando um ponteiro do tipo TPaciente;
int n;
printf("Qual o numero de pacientes voce vai calcular a resistencia aerobica? \n");
scanf("%d", &n);
g = ((TPaciente*) malloc(n*sizeof(TPaciente)));
lerDados(g,n);
resistencia(g,n);
int i;
float CA;
int fator;
for(i=0; i<n; i++){
fator = resistencia(g); //fator recebe o resultado da chamada de função resistencia
CA = fator * g->idade;
printf("\nO Condicionamento Aerobico do doente %s e %.0f", g->nome, CA);
}
free(g);
}
void lerDados(TPaciente *g, int n) {
int i;
for(i=0;i<n;i++){
printf("\n Qual o nome do paciente: ");
scanf("%s", &(g+i)->nome);
printf("\n Qual a idade do paciente: ");
scanf("%d", &(g+i)->idade);
printf("\n Qual o nbcr do paciente: ");
scanf("%f", &(g+i)->nbcr);
printf("\n Qual o nbca do paciente: ");
scanf("%f", &(g+i)->nbca);
}
}
int resistencia(TPaciente *g, int n){
int i, fator;
float media;
for(i=0; i<n ; i++){
media = ((g+i)->nbcr*3 + (g+i)->nbca*5)/10;
if(media <= 70){
printf("FATOR = 3");
fator = 3;
}
if((media > 70) && (media < 100)){
printf("FATOR = 2");
fator = 2;
}
if(media > 100){
printf("FATOR = 1");
fator = 1;
}
return fator;
}
}Discussão (0)
Carregando comentários...