error C2664: ✀average✀ : cannot convert parameter 1 from ✀float [2]✀ to ✀float✀ 求改下程序

2025-03-20 12:47:07
推荐回答(2个)
回答1:

#include 
struct score {
    float score1;
    float score2;
    float score3;
};

struct stu {
    char No[10];
    char name[15];
    struct score s;
} student[2];


void average (float sum[], float *aver1, float *aver2) {

    int i;
    float total = 0;

    for (i = 0; i < 2; i++) {
        sum[i] = student[i].s.score1 + student[i].s.score2 + student[i].s.score3;
        printf("%s\t", student[i].name);
        printf("%f\t", sum[i]);
        printf("%f\t\n", *aver1 = sum[i] / 3);
        total += sum[i];
    }

    printf("%f\t", *aver2 = total / 2);
}

void main () {

    // average 函数本来就是声明在main函数之前,就不用在这里声明一遍了,而且你的参数类型不一致
    // void average(float [], float *, float *);

    float sum[2], aver1, aver2;

    int i;

    for (i = 0; i < 2; i++) {
        printf("student's No:");
        scanf("%s", &student[i].No);
        printf("student's name:");
        scanf("%s", &student[i].name);
        printf("student's score1:");
        scanf("%f", &student[i].s.score1);
        printf("student's score2:");
        scanf("%f", &student[i].s.score2);
        printf("student's score3:");
        scanf("%f", &student[i].s.score3);
    }

    average(sum, &aver1, &aver2); // 第二三个参数从外面没传值,还不如不要,或者你是要把值再传出来?
}

回答2:

不如用易语言,呵呵这种麻烦