mình có bài tập như sau
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
struct seiseki{
int number;
float *score; //diem so cua tung mon
int size_score; //tong so mon
float ave; //diem trung binh
};
void calcAverage(struct seiseki *scores);
int main(){
struct seiseki *scores;
int N;
int j,i;
scanf("%d",&N);
scores = (struct seiseki *)malloc(N*sizeof(struct seiseki));
for(i=0; i<N;i++){
scanf("%d", &scores[i].number);
scanf("%d", &scores[i].size_score);
for(j=0; j<scores[i].size_score; j++){
scanf("%f",&scores[j].score[j]);
}
scores[i].ave = calcAverage(scores[i].score[i]); //no bi loi o cho nay
printf("%d: ave = %f\n",i,scores[i].ave);
}
return 0;
}
//minh muon dung ham nay de tinh so diem trung binh cua scores.size mon cua N nguoi
void calcAverage(struct seiseki *scores){
int i;
for(i=0; i<scores->size_score; i++){
scores[i].ave = scores[i].ave + scores[i].score[i];
scores[i].ave /= scores[i].size_score;
}
}
nó yêu cầu mình phải tính số điểm trung bình của tất cả học sinh N
tuy nhiên khi mình thử dịch để chạy thử thì nó báo lỗi như thế này
gcc kadai9.c
kadai9.c: In function ‘main’:
kadai9.c:26:33: error: incompatible type for argument 1 of ‘calcAverage’
scores[i].ave = calcAverage(scores[i].score[i]);
^~~~~~
kadai9.c:12:6: note: expected ‘struct seiseki *’ but argument is of type ‘float’
void calcAverage(struct seiseki *scores);
ai có thể giúp mình sửa lỗi này và giải thích vì sao lại xuất hiện lỗi này cho mình với được không ???
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?