_Phoebe__ 2021-12-11 10:01 采纳率: 96.9%
浏览 42
已结题

结构体 输出学生信息 三科成绩和平均成绩 报错显示函数的调用是错误的 想问问怎么改


```c
//结构体
#include<stdio.h> 
struct student{
    char id[99];
    char name[99];
    int x;
    int y;
    int z;    
    float average;
}a[99];
float average(struct student ,int n ){
    for(int i=0;i<n;i++){
    a[i].average=(a[i].x+a[i].y+a[i].z)/3.0;
}

}

int main(){
    int i,n;
    float aver;
    struct student a[99];
    scanf("%d",&n);//输入学生个数
    for(i=0;i<n;i++){
        scanf("%s",a[i].id);
        scanf("%s",a[i].name);
        scanf("%d",&a[i].x);
        scanf("%d",&a[i].y);
        scanf("%d",&a[i].z);
    }
    for(i=0;i<n;i++){
        printf("%s",a[i].id);
        printf("%s",a[i].name);
        printf("%d",a[i].x);
        printf("%d",a[i].y);
        printf("%d",a[i].z);
    }
    aver=average(student,n);//显示这里错误
    printf("%f",aver);
    return 0;
}

```

  • 写回答

3条回答 默认 最新

  • 南城Flipped 2021-12-11 10:09
    关注

    首先你average传参第一个参数不对 你要传的是数组
    第二你这没有返回值aver是个随机数(看你的逻辑不需要这个aver吧)
    按照你结构体的定义这个average函数不需要返回值

    #include<stdio.h> 
    struct student{
        char id[99];
        char name[99];
        int x;
        int y;
        int z;    
        float average;
    }a[99];
    void average(struct student *a,int n ){
        for(int i=0;i<n;i++){
            a[i].average=(a[i].x+a[i].y+a[i].z)/3.0;
        }
    }
    int main(){
        int i,n;
        struct student a[99];
        scanf("%d",&n);
        for(i=0;i<n;i++){
            scanf("%s",a[i].id);
            scanf("%s",a[i].name);
            scanf("%d",&a[i].x);
            scanf("%d",&a[i].y);
            scanf("%d",&a[i].z);
        }
        for(i=0;i<n;i++){
            printf("%s\t",a[i].id);
            printf("%s\t",a[i].name);
            printf("%d\t",a[i].x);
            printf("%d\t",a[i].y);
            printf("%d\n",a[i].z);
        }
        average(a,n);
        for(i=0;i<n;i++){
            printf("%f\n",a[i].average);
        }  
        return 0;
    }
    
    

    img

    代码给你改了一下 你品品 有帮助的话 采纳一下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月19日
  • 已采纳回答 12月11日
  • 创建了问题 12月11日