怕冷的南方人 2021-12-05 16:35 采纳率: 60%
浏览 14
已结题

c语言学生成绩分析系统,用数组做函数参数遇到问题

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#include<stdio.h>
int all_grades();
float ave_grades();
float no_pass();
int max_grades();
int f_max_t_min();
int main()
{
    int a,i,c,b[100];//a是学生人数,i是循环数,c是选项 
    printf("欢迎进入学生成绩分析系统\n");
    printf("请输入学生人数:\n");
    scanf("%d",&a);
    for(i=0;i<a;i++)
    {
        printf("请输入第%d名学生的成绩:\n",i+1);
        scanf("%d",&b[i]);
     } 
     printf("请选择操作:\n");
     printf("1 查询全部成绩\n");
     printf("2 查询平均分\n");
     printf("3 查询不及格率\n");
     printf("4 查询最高分\n");
     printf("5 按成绩降序排列\n");
     printf("0 退出\n");
     scanf("%d",&c);
     switch(c)
     {
         case 1:
             all_grades(a,b);
             break;
         case 2:
             ave_grades(a,b);
             break;
         case 3:
             no_pass(a,b);
             break;
         case 4:
             max_grades(a,b);
             break;
         case 5:
             f_max_t_min(a,b);
             break;
         case 0:
             goto end;//暂时 
         default:
             printf("输入格式错误,请重新输入");
            break;//暂时 
     }
     end:
    return 0;
 } 
int all_grades(int a,int b[])//查询全部成绩
{
    for(i=0;i<a;i++)
    {
        scanf("%d",&b[i]);
        printf("第%d名学生的成绩是:%d",i+1,b[i]);
    }
}
float ave_grades(int a,int b[])//查询平均分
{
    float ave;
    for(i=0;i<a;i++)
    {
        sum=sum+b[i];
    }
    ave=1.0*sum/a;
    printf("平均成绩为:%.2f",ave);
}
float no_pass(int a,int b[])//查询不及格率
{
    int c=0;//不及格人数
    float d;//不及格率 
    for(i=0;i<a;i++)
    {
        if(b[i]<60)
        {
            c++;
        }
        }
        d=1.0*c/a;    
        printf("不及格率为:%.2f",d);
 } 
int max_grades(int a,int b[])//4 查询最高分
{
    int max=0;//最高分
    for(i=0;i<a;i++)
    {
        if(max<b[i])
        {
            max=b[i];
        }
        }
        printf("最高分为:%d",max);    
}
int f_max_t_min(int a,int b[])//5 按成绩降序排列
{
    int i,temp,j;
    for(i=0;i<a-1;i++)
    {
        for(j=0;j<a-1-i;j++)
        {
            if(b[j]<b[j+1])
            {
                temp=b[j];
                b[j]=b[j+1];
                b[j+1]=temp;
            }
        }
    }
    for(i=0;i<a;i++)
    {
        printf("第%d名:%d",i+1,b[i]);    
    }
}
//日志:
//1 遇到自定义函数数组做参数    


环境是DEV C++
运行之后会出现[Error] too many arguments to function 'int all_grades()'

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月13日
    • 修改了问题 12月5日
    • 创建了问题 12月5日

    悬赏问题

    • ¥20 (标签-UE5|关键词-server)
    • ¥15 MATLAB报错问题
    • ¥100 多线程+连接池+代理 运行一段时间线程阻塞
    • ¥15 关于#单片机#的问题:求一个使用C语言将重力加速度gx,gy,gz积分获取到速度的代码(相关搜索:c语言)
    • ¥15 matlab导致电脑重启问题
    • ¥15 Android studio打开dex
    • ¥20 为何R语言love图显示的分类变量点与smd值不一致
    • ¥15 asp.net实验:数据库写入不成功
    • ¥15 C#视频播放器的原码,有的发一
    • ¥15 用FDTD计算并提取光栅结构的正负一级衍射光的光功率