猿问

想问一下为什么完成的子函数调用不出来?

 

#include<stdio.h>
//学生结构体数组用来保存学生信息
struct stu
{
    int num[11];       /*学号*/
    char name[20];     /*姓名*/
    int score[];      /*成绩*/
};
/*主菜单功能*/
int show_window()
{
    printf("/*******************************************\n");
    printf("*  the manage system of students' score     *\n");
    printf("                                            \n");
    printf("*--------description of program-------------\n");
    printf("                                            \n");
    printf("1.input data for students                   \n");
    printf("                                            \n");
    printf("2.output data for students                  \n");
    printf("                                            \n");
    printf("3.find data for students                    \n");
    printf("                                            \n");
    printf("4.insert data for students                  \n");
    printf("                                            \n");
    printf("5.sort data for students                    \n");
    printf("                                            \n");
    printf("6.alter data for students                   \n");
    printf("                                            \n");
    printf("7.delete data for students                  \n");
    printf("                                            \n");
    printf("8.get the fail students data                \n");
    printf("                                            \n");
    printf("9.average data for students                 \n");
    printf("                                            \n");
    printf("10.get above the average students data      \n");
    printf("                                            \n");
    printf("/*******************************************\n");
}

/*输入学生的学号,姓名,数学成绩,英语成绩,语文成绩分别存入数组num[],name[]*/
int input_stu()
{
    int N;
    printf("Please input the count of student number for N:\n");
    scanf("%d",&N);
    int i=0,num[11],name[20],score[N];
    printf("Please input student's number and name and score:\n");
    do{
            scanf("%d,%c,%f",&num[i],&name[i],&score[N]);
            i++;
    }while((name[i-1]>=0)&&(i<N));
    return i-1;
}

/*输出学生的信息*/
int output_stu()
{
    int i,N,num[11],name[20],score[N];
    for(i=0;i<N;i++)
        printf("num[]=%d,name[]=%c,score[]=%f\n",&num[i],&name[i],&score[i]);
}
/*查找学生的信息*/
int find_stu()
{
    int i,N,num[N],name[N],score[N],number;
    printf("Please input the student'number:\n");
    scanf("%d",&number);
 int value=number;
 int index=0;
 while(index>=0)
    {
  if(num[index]==value)
  {
   break;
  }
  else
   index++;
 }
        if(num[index]==value)
        {
            printf("%该学生信息存在,下标为:%d\n",value,index);
        }
        else
 {
  printf("%d该学生信息不存在\n",value);
 }

}

/*插入学生信息*/
int insert_stu()
{

}
/*成绩排名*/
int sort_stu()
{

}
/*修改学生信息*/
int alter_stu()
{

}
/*删除学生信息*/
int delete_stu()
{

}
/*统计不及格学生*/
int get_fail()
{
    int i,count=0,N,score[i],num[i],name[i];
    printf("不及格的学生:\n");
    for(i=0;i<N;i++);
        if(score[i]<60)
        {
            count++;
            printf("%101d%c-----%4f\n",num[i],name[i],score[i]);
        }
    return count;
}
/*求平均分*/
int get_avg()
{
    int i,N;
    int score[N];
    int sum=0;
    for(i=0;i<N;i++)
        sum=sum+score[i];
        return sum/N;


}
/*统计平均分以上的学生*/
int get_above_avg()
{
    int i,N,count=0,score[i],num[i];
    float avg;
    /* 调用求平均分函数*/
    int get_avg;
    printf("在平均分以上的学生:\n");
    for(i=0;i<N;i++)
        if(avg<=score[i])
    {
        count++;
        printf("%101d-----%4f\n",num[i],score[i]);
    }
    return count;
}
/*主函数*/
int main()
{
    int select;


    show_window();

 


    /*输入菜单选项*/
    printf("Please select 1-10 from show window\n");
    scanf("%d",&select);
    /*选择执行菜单*/
    switch(select)
    {
        case 1:input_stu();break;
        case 2:output_stu();break;
        case 3:find_stu();break;
        case 4:insert_stu();break;
        case 5:sort_stu();break;
        case 6:alter_stu();break;
        case 7:delete_stu();break;
        case 8:get_fail();break;
        case 9:get_avg();break;
        case 10:get_above_avg();break;
        default:printf("error!");

    }
}

qq_心晴_11
浏览 1122回答 1
1回答

望远

不能企图输入一个整数,然后通过这个整数来定义数组的长度大小,数组长度必须事先定义。
随时随地看视频慕课网APP
我要回答