标题:函数出现问题了,麻烦大佬们看一下! !!
只看楼主
臭菜鸟哒
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-3-1
结帖率:0
已结贴  问题点数:20 回复次数:2 
函数出现问题了,麻烦大佬们看一下! !!
编程:输入3名学生的学号、班级、姓名、三门课成绩,打印出每个学生三门课的平均成绩,以及每门课程平均分、最高分学生数据(包括学号、班级、姓名、三门课成绩,平均分)。


#include <stdio.h>
#include <string.h>

int average(struct student,int,int);

struct student
{
    char x[50];
    char b[50];
    char name[20];
    int point[3];
    int average;
}st[3];
struct student s[20];


int main()
{
    int i,m,n,k,x=0;
    printf("欢迎来到学生成绩管理系统\n");
    for(i=0,m=0;i<=2;i++)
    {
        printf("请输入学生学号:");
        gets(st[i].x);
        printf("请输入学生班级:");
        gets(st[i].b);
        printf("请输入学生名字:");
        gets(st[i].name);
        printf("请输入学生数学成绩:");
        scanf("%d",&st[i].point[m]);
        m++;
        printf("请输入学生语文成绩:");
        scanf("%d",&st[i].point[m]);
        m++;
        printf("请输入学生英语成绩:");
        scanf("%d",&st[i].point[m]);
        st[i].point[m];
        m=0;
        getchar();
        printf("\n");
        printf("\n");
        printf("\n");
    }
    k=average(st,i,x);
    for(i=0;i<=2;i++)
    {
        printf("学生学号:%s\n",st[i].x);
        printf("学生班级:%s\n",st[i].b);
        printf("学生姓名:%s\n",st[i].name);
        printf("学生平均成绩: %d\n",st[i].average);
    }
    printf("\n");
    printf("\n");
    printf("\n");
    printf("平均分最高的学生学号:%s\n",st[k].x);
    printf("平均分最高的学生班级:%s\n",st[k].b);
    printf("平均分最高的学生姓名:%s\n",st[k].name);
    printf("平均分最高的学生平均成绩: %d\n",st[k].average);
    return 0;   
}
int average(struct student s[],int i,int x)
{
    int k;
    for(i=0;i<=2;i++)
    {   
        s[i].average=(s[i].point[0]+s[0].point[1]+s[i].point[2])/3;
        if(x<=s[i].average)
        {
            x=s[i].average;
            k=i;
        }
    }
    return k;
}
显示的错误是这样的:error C2664: 'average' : cannot convert parameter 1 from 'struct student [3]' to 'struct student'   No constructor could take the source type, or constructor overload resolution was ambiguous
搜索更多相关主题的帖子: printf average int 成绩 学生 
2020-03-01 15:04
xianfajushi
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:527
专家分:690
注 册:2007-9-8
得分:10 
s[i].average=(s[i].point[0]+s[0].point[1]+s[i].point[2])/3;第二个s【0】?不是应该i?
2020-03-01 16:21
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:10 
另外顶上的函数原型和下面的函数头不一致,修改一下
int average(struct student [],int,int);

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-03-01 18:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-499487-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041934 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved