| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1178 人关注过本帖
标题:【求助】编写了一个结构体,函数调用总是显示不合法
只看楼主 加入收藏
菁城
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2015-3-13
结帖率:50%
收藏
 问题点数:0 回复次数:15 
【求助】编写了一个结构体,函数调用总是显示不合法
您看看究竟是什么毛病,我愣是没看出来,可能比较长,但很多都是重复的。
#include<stdio.h>
struct student
{
    int num;
    int total;
    int Chi,mat,Eng,phy,che,bio,pol,his,geo;
};

int main()
{
    void input(struct student stu[10]);
    void tp(struct student stu[10]);
    void chinese(struct student stu[10]);
    void math(struct student stu[10]);
    void english(struct student stu[10]);
    void physics(struct student stu[10]);
    void chemistry(struct student stu[10]);
    void biology(struct student stu[10]);
    void politics(struct student stu[10]);
    void history(struct student stu[10]);
    void geography(struct student stu[10]);
    int i,m;
    struct student stu[10],*p=stu;
    input(p);
    tp(p);
    chinese(p);
    math(p);
    english(p);
    physics(p);
    chemistry(p);
    biology(p);
    politics(p);
    history(p);
    geography(p);
    for(m=0;m<20;m++)
    {
        printf("如要查询学生成绩,请输入学生学号:");
        scanf("%d",&i);
        printf("\n");
        printf("学号     语文    数学    英语    物理    化学    生物    政治    历史    地理\n");
        printf("%d %d %d %d %d %d %d %d %d %d",stu[i].num,stu[i].Chi,stu[i].mat,stu[i].Eng,stu[i].phy,stu[i].che,stu[i].bio,stu[i].pol,stu[i].his,stu[i].geo);
    return 0;
}


void input(struct student stu[10])
{
    int i;
    printf("请输入学生相应的信息\n");
    printf("学号     语文    数学    英语    物理    化学    生物    政治    历史    地理\n");
    for(i=0;i<9;i++)
        scanf("%d %d %d %d %d %d %d %d %d %d",&stu[i].num,&stu[i].Chi,&stu[i].mat,&stu[i].Eng,&stu[i].phy,&stu[i].che,&stu[i].bio,&stu[i].pol,&stu[i].his,&stu[i].geo);
        printf("\n");
}

void tp(struct student stu[10])
{
    int i,number1,number2;
    int max,min;
    for(i=0;i<10;i++)
        stu[i].total=stu[i].Chi+stu[i].mat+stu[i].Eng+stu[i].phy+stu[i].che+stu[i].bio+stu[i].pol+stu[i].his+stu[i].geo;
    max=stu[0].total;
    for(i=1;i<10;i++)
        if(stu[i]>max)
        {
            max=stu[i].total;
            number=i;
        }
    printf("最高分是%d  学号是%d\n",max,number1);
    min=stu[0].total;
    for(i=1;i<10;i++)
        if(stu[i]<min)
        {
            min=stu[i].total;
            number2=i;
        }
    printf("最低分是%d  学号是%d\n",min,number2);

}

void chinese(struct student stu[10])
{
    int max,min;
    int fail;
    max=stu[0].Chi;
    for(i=1;i<10;i++)
        if(stu[i].Chi>max)
        {
            max=stu[i].Chi;
            number=i;
        }
    printf("语文最高分是%d  学号是%d\n",max,number1);
    min=stu[0].Chi;
    for(i=1;i<10;i++)
        if(stu[i].Chi<min)
        {
            min=stu[i].Chi;
            number2=i;
        }
    printf("语文最低分是%d  学号是%d\n",min,number2);
    for(i=0;i<10;i++)
        if(stu[i].Chi<60)
            printf("以下同学未及格,分数是%d 学号是%d\n",stu[i].Chi,stu[i].num);
}

void math(struct student stu[10])
{
    int max,min;
    max=stu[0].Chi;
    for(i=1;i<10;i++)
        if(stu[i].Chi>max)
        {
            max=stu[i].Chi;
            number=i;
        }
    printf("数学最高分是%d  学号是%d\n",max,number1);
    min=stu[0].Chi;
    for(i=1;i<10;i++)
        if(stu[i].Chi<min)
        {
            min=stu[i].Chi;
            number2=i;
        }
    printf("数学最低分是%d  学号是%d\n",min,number2);
    for(i=0;i<10;i++)
        if(stu[i].mat<60)
            printf("以下同学未及格,分数是%d 学号是%d\n",stu[i].mat,stu[i].num);
}

void english(struct student stu[10])
{
    int max,min;
    max=stu[0].Chi;
    for(i=1;i<10;i++)
        if(stu[i].Chi>max)
        {
            max=stu[i].Chi;
            number=i;
        }
    printf("英语最高分是%d  学号是%d\n",max,number1);
    min=stu[0].Chi;
    for(i=1;i<10;i++)
        if(stu[i].Chi<min)
        {
            min=stu[i].Chi;
            number2=i;
        }
    printf("英语最低分是%d  学号是%d\n",min,number2);
    for(i=0;i<10;i++)
        if(stu[i].Eng<60)
            printf("以下同学未及格,分数是%d 学号是%d\n",stu[i].Engu[i].num);
}

void physics(struct student stu[10])
{
    int max,min;
    max=stu[0].Chi;
    for(i=1;i<10;i++)
        if(stu[i].Chi>max)
        {
            max=stu[i].Chi;
            number=i;
        }
    printf("物理最高分是%d  学号是%d\n",max,number1);
    min=stu[0].Chi;
    for(i=1;i<10;i++)
        if(stu[i].Chi<min)
        {
            min=stu[i].Chi;
            number2=i;
        }
    printf("物理最低分是%d  学号是%d\n",min,number2);
    for(i=0;i<10;i++)
        if(stu[i].phy<60)
            printf("以下同学未及格,分数是%d 学号是%d\n",stu[i].phy,stu[i].num);
}

void chemistry(struct student stu[10])
{
    int max,min;
    max=stu[0].Chi;
    for(i=1;i<10;i++)
        if(stu[i].Chi>max)
        {
            max=stu[i].Chi;
            number=i;
        }
    printf("化学最高分是%d  学号是%d\n",max,number1);
    min=stu[0].Chi;
    for(i=1;i<10;i++)
        if(stu[i].Chi<min)
        {
            min=stu[i].Chi;
            number2=i;
        }
    printf("化学最低分是%d  学号是%d\n",min,number2);
    for(i=0;i<10;i++)
        if(stu[i].che<60)
            printf("以下同学未及格,分数是%d 学号是%d\n",stu[i].che,stu[i].num);
}
void biology(struct student stu[10])
{
    int max,min;
    int fail;
    max=stu[0].bio;
    for(i=1;i<10;i++)
        if(stu[i].bio>max)
        {
            max=stu[i].bio;
            number=i;
        }
    printf("生物最高分是%d  学号是%d\n",max,number1);
    min=stu[0].bio;
    for(i=1;i<10;i++)
        if(stu[i].bio<min)
        {
            min=stu[i].bio;
            number2=i;
        }
    printf("生物最低分是%d  学号是%d\n",min,number2);
    for(i=0;i<10;i++)
        if(stu[i].bio<60)
            printf("以下同学未及格,分数是%d 学号是%d\n",stu[i].bio,stu[i].num);
}


void politics(struct student stu[10])
{
    int max,min;
    max=stu[0].Chi;
    for(i=1;i<10;i++)
        if(stu[i].Chi>max)
        {
            max=stu[i].Chi;
            number=i;
        }
    printf("政治最高分是%d  学号是%d\n",max,number1);
    min=stu[0].Chi;
    for(i=1;i<10;i++)
        if(stu[i].Chi<min)
        {
            min=stu[i].Chi;
            number2=i;
        }
    printf("政治最低分是%d  学号是%d\n",min,number2);
    for(i=0;i<10;i++)
        if(stu[i].pol<60)
            printf("以下同学未及格,分数是%d 学号是%d\n",stu[i].pol,stu[i].num);
}

void history(struct student stu[10])
{
    int max,min;
    max=stu[0].Chi;
    for(i=1;i<10;i++)
        if(stu[i].Chi>max)
        {
            max=stu[i].Chi;
            number=i;
        }
    printf("历史最高分是%d  学号是%d\n",max,number1);
    min=stu[0].Chi;
    for(i=1;i<10;i++)
        if(stu[i].Chi<min)
        {
            min=stu[i].Chi;
            number2=i;
        }
    printf("历史最低分是%d  学号是%d\n",min,number2);
    for(i=0;i<10;i++)
        if(stu[i].his<60)
            printf("以下同学未及格,分数是%d 学号是%d\n",stu[i].his,stu[i].num);
}

void geography(struct student stu[10])
{
    int max,min;
    max=stu[0].Chi;
    for(i=1;i<10;i++)
        if(stu[i].Chi>max)
        {
            max=stu[i].Chi;
            number=i;
        }
    printf("地理最高分是%d  学号是%d\n",max,number1);
    min=stu[0].Chi;
    for(i=1;i<10;i++)
        if(stu[i].Chi<min)
        {
            min=stu[i].Chi;
            number2=i;
        }
    printf("地理最低分是%d  学号是%d\n",min,number2);
    for(i=0;i<10;i++)
        if(stu[i].geo<60)
            printf("以下同学未及格,分数是%d 学号是%d\n",stu[i].geo,stu[i].num);
        return 0;
}
搜索更多相关主题的帖子: english biology include 结构体 
2015-06-21 15:03
菁城
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2015-3-13
收藏
得分:0 
晕啊晕
2015-06-21 15:04
菁城
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2015-3-13
收藏
得分:0 
C:\Program Files\Microsoft Visual Studio\MyProjects\结构体\学生.cpp(47) : error C2601: 'input' : local function definitions are illegal
2015-06-21 15:15
菁城
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2015-3-13
收藏
得分:0 
大神快粗线
2015-06-21 15:32
lanlinzou
Rank: 2
等 级:论坛游民
帖 子:26
专家分:49
注 册:2015-6-20
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define LENGTH 2
#define class struct
typedef class{
  char stuID[12];
  float totalScore;
  float chi,mat,eng,phy,che,bio,pol,his,geo;
}Student;
void input(Student *stu);
void achievement(Student *stu);
void chinese(Student *stu);
void math(Student *stu);
void english(Student *stu);
void physics(Student *stu);
void chemistry(Student *stu);
void biology(Student *stu);
void politics(Student *stu);
void history(Student *stu);
void geography(Student *stu);
void lookup(Student *stu);
void main(){
  int i;
  Student stu[LENGTH];
  input(stu);
  achievement(stu);
  chinese(stu);
  math(stu);
  english(stu);
  physics(stu);
  chemistry(stu);
  biology(stu);
  politics(stu);
  history(stu);
  geography(stu);
  lookup(stu);
}
void input(Student *stu){
  int i;
  puts("请输入学生相关信息");
  printf("共有%d位学生\n\n",LENGTH);
  for(i=0;i<LENGTH;i++){
    printf("第%d位学生信息:\n",i+1);
    printf("学号: ");
    gets(&stu[i].stuID);
    printf("语文: ");
    scanf("%f",&stu[i].chi);
    printf("数学: ");
    scanf("%f",&stu[i].mat);
    printf("英语: ");
    scanf("%f",&stu[i].eng);
    printf("物理: ");
    scanf("%f",&stu[i].phy);
    printf("化学: ");
    scanf("%f",&stu[i].che);
    printf("生物: ");
    scanf("%f",&stu[i].bio);
    printf("政治: ");                       
    scanf("%f",&stu[i].pol);
    printf("历史: ");
    scanf("%f",&stu[i].his);
    printf("地理: ");
    scanf("%f",&stu[i].geo);
    puts("\n");
    gets(stdin);
  }
  for(i=0;i<LENGTH;i++){
      stu[i].stuID[11]=0;
  }
  getch();
}
void achievement(Student *stu){
  int i,flag,flag2;
  float max,min;
  for(i=0;i<LENGTH;i++){
    stu[i].totalScore=stu[i].chi+stu[i].mat+stu[i].eng+stu[i].phy+stu[i].che+
    stu[i].bio+stu[i].pol+stu[i].his+stu[i].geo;
  }
  max=stu[0].totalScore;
  flag=0;
  min=max;
  flag2=0;
  for(i=1;i<LENGTH;i++){
    if(stu[i].totalScore>max){
       max=stu[i].totalScore;
       flag=i;
    }
    if(stu[i].totalScore<min){
      min=stu[i].totalScore;
      flag2=i;
    }
  }
  puts("\n************************总成绩最高************************");
  printf("最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  puts("************************总成绩最低************************");
  printf("最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
}
void chinese(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].chi;
  flag=0;
  min=max;
  flag2=0;
  puts("\n*************************语文*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].chi>max){
       max=stu[i].chi;
       flag=i;
    }
    if(stu[i].chi<min){
      min=stu[i].chi;
      flag2=i;
    }
    if(flag==flag2){
        printf("语文成绩都相等: ");
    }
  }
  printf("语文最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("语文最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].chi<60){
      printf("以下同学未及格,语文分数是: %f 学号是: %s\n",stu[i].chi,&stu
[i].stuID);
    }
  }
}
void math(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].mat;
  flag=0;
  min=stu[0].mat;
  flag2=0;
  puts("\n*************************数学*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].mat>max){
       max=stu[i].mat;
       flag=i;
    }
    if(stu[i].mat<min){
      min=stu[i].mat;
      flag2=i;
    }
    if(flag==flag2){
        printf("数学成绩都相等: ");
    }
  }
  printf("数学最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("数学最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].mat<60){
      printf("以下同学未及格,语文分数是: %f 学号是: %s\n",stu[i].mat,&stu
[i].stuID);
    }
  }
}

void english(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].eng;
  flag=0;
  min=max;
  flag2=0;
  puts("\n*************************英语*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].eng>max){
       max=stu[i].eng;
       flag=i;
    }
    if(stu[i].eng<min){
      min=stu[i].eng;
      flag2=i;
    }
    if(flag==flag2){
        printf("英语成绩都相等: ");
    }
  }
  printf("英语最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("英语最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].eng<60){
      printf("以下同学未及格,英语分数是: %f 学号是: %s\n",stu[i].eng,&stu
[i].stuID);
    }
  }
}

void physics(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].phy;
  flag=0;
  min=max;
  flag2=0;
  puts("\n*************************物理*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].phy>max){
       max=stu[i].phy;
       flag=i;
    }
    if(stu[i].phy<min){
      min=stu[i].phy;
      flag2=i;
    }
    if(flag==flag2){
        printf("物理成绩都相等: ");
    }
  }
  printf("物理最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("物理最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].phy<60){
      printf("以下同学未及格,物理分数是: %f 学号是: %s\n",stu[i].phy,&stu
[i].stuID);
    }
  }
}
void chemistry(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].che;
  flag=0;
  min=max;
  flag2=0;
  puts("\n*************************化学*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].che>max){
       max=stu[i].che;
       flag=i;
    }
    if(stu[i].che<min){
      min=stu[i].che;
      flag2=i;
    }
    if(flag==flag2){
        printf("化学成绩都相等: ");
    }
  }
  printf("化学最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("化学最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].che<60){
      printf("以下同学未及格,化学分数是: %f 学号是: %s\n",stu[i].che,&stu
[i].stuID);
    }
  }
}
void biology(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].bio;
  flag=0;
  min=max;
  flag2=0;
  puts("\n*************************生物*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].bio>max){
       max=stu[i].bio;
       flag=i;
    }
    if(stu[i].bio<min){
      min=stu[i].bio;
      flag2=i;
    }
    if(flag==flag2){
        printf("生物成绩都相等: ");
    }
  }
  printf("生物最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("生物最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].bio<60){
      printf("以下同学未及格,生物分数是: %f 学号是: %s\n",stu[i].bio,&stu
[i].stuID);
    }
  }
}
void politics(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].pol;
  flag=0;
  min=max;
  flag2=0;
  puts("\n*************************政治*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].pol>max){
       max=stu[i].pol;
       flag=i;
    }
    if(stu[i].pol<min){
      min=stu[i].pol;
      flag2=i;
    }
    if(flag==flag2){
        printf("政治成绩都相等: ");
    }
  }
  printf("政治最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("政治最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].pol<60){
      printf("以下同学未及格,政治分数是: %f 学号是: %s\n",stu[i].pol,&stu
[i].stuID);
    }
  }
}
void history(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].his;
  flag=0;
  min=max;
  flag2=0;
  puts("\n*************************历史*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].his>max){
       max=stu[i].his;
       flag=i;
    }
    if(stu[i].his<min){
      min=stu[i].his;
      flag2=i;
    }
    if(flag==flag2){
        printf("历史成绩都相等: ");
    }
  }
  printf("历史最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("历史最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].his<60){
      printf("以下同学未及格,历史分数是: %f 学号是: %s\n",stu[i].his,&stu
[i].stuID);
    }
  }
}
void geography(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].geo;
  flag=0;
  min=max;
  flag2=0;
  puts("\n*************************地理*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].geo>max){
       max=stu[i].geo;
       flag=i;
    }
    if(stu[i].geo<min){
      min=stu[i].geo;
      flag2=i;
    }
    if(flag==flag2){
        printf("地理成绩都相等: ");
    }
  }
  printf("地理最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("地理最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].geo<60){
      printf("以下同学未及格,地理分数是: %f 学号是: %s\n",stu[i].geo,&stu
[i].stuID);
    }
  }
}
void lookup(Student *stu){
  char stuID[12];
  int i,flag=0;
  puts("\n************************查询学生成绩************************");
  printf("请输入学生学号查询学生成绩: ");
  gets(stuID);
  for(i=0;i<LENGTH;i++){
    if(strcmp(stuID,&stu[i].stuID)==0){
      flag=1;
      break;
    }
  }
  if(flag){
    printf("学号: %s\n",stu[i].stuID);
    printf("语文: %f\n",stu[i].chi);
    printf("数学: %f\n",stu[i].mat);
    printf("英语: %f\n",stu[i].eng);
    printf("物理: %f\n",stu[i].phy);
    printf("化学: %f\n",stu[i].che);
    printf("生物: %f\n",stu[i].bio);
    printf("政治: %f\n",stu[i].pol);
    printf("历史: %f\n",stu[i].his);
    printf("地理: %f\n",stu[i].geo);
  }
  else{
    printf("没有该生成绩:\n");
  }
}

2015-06-22 01:06
lanlinzou
Rank: 2
等 级:论坛游民
帖 子:26
专家分:49
注 册:2015-6-20
收藏
得分:0 
修改一下:
    #define LENGTH 2
就可以满足你的要求了!!!
2015-06-22 01:12
lanlinzou
Rank: 2
等 级:论坛游民
帖 子:26
专家分:49
注 册:2015-6-20
收藏
得分:0 

朋友你这是学校实习的吧?
2015-06-22 01:32
菁城
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2015-3-13
收藏
得分:0 
学校的实验,但是做了一天了,还是没有调试好
2015-06-22 10:00
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define LENGTH 2
#define class struct
typedef class{
  char stuID[12];
  float totalScore;
  float chi,mat,eng,phy,che,bio,pol,his,geo;
}Student;
void input(Student *stu);
void achievement(Student *stu);
void chinese(Student *stu);
void math(Student *stu);
void english(Student *stu);
void physics(Student *stu);
void chemistry(Student *stu);
void biology(Student *stu);
void politics(Student *stu);
void history(Student *stu);
void geography(Student *stu);
void lookup(Student *stu);
main(){
  int i;
  Student stu[LENGTH];
  input(stu);
  achievement(stu);
  chinese(stu);
  math(stu);
  english(stu);
  physics(stu);
  chemistry(stu);
  biology(stu);
  politics(stu);
  history(stu);
  geography(stu);
  lookup(stu);
}
void input(Student *stu){
  int i;
  puts("请输入学生相关信息");
  printf("共有%d位学生\n\n",LENGTH);
  for(i=0;i<LENGTH;i++){
    printf("第%d位学生信息:\n",i+1);
    printf("学号: ");
    gets(stu[i].stuID);
    printf("语文: ");
    scanf("%f",&stu[i].chi);
    printf("数学: ");
    scanf("%f",&stu[i].mat);
    printf("英语: ");
    scanf("%f",&stu[i].eng);
    printf("物理: ");
    scanf("%f",&stu[i].phy);
    printf("化学: ");
    scanf("%f",&stu[i].che);
    printf("生物: ");
    scanf("%f",&stu[i].bio);
    printf("政治: ");                       
    scanf("%f",&stu[i].pol);
    printf("历史: ");
    scanf("%f",&stu[i].his);
    printf("地理: ");
    scanf("%f",&stu[i].geo);
    puts("\n");
    fflush(stdin); 
  }
  for(i=0;i<LENGTH;i++){
      stu[i].stuID[11]=0;
  }
  getch();
}
void achievement(Student *stu){
  int i,flag,flag2;
  float max,min;
  for(i=0;i<LENGTH;i++){
    stu[i].totalScore=stu[i].chi+stu[i].mat+stu[i].eng+stu[i].phy+stu[i].che+
    stu[i].bio+stu[i].pol+stu[i].his+stu[i].geo;
  }
  max=stu[0].totalScore;
  flag=0;
  min=max;
  flag2=0;
  for(i=1;i<LENGTH;i++){
    if(stu[i].totalScore>max){
       max=stu[i].totalScore;
       flag=i;
    }
    if(stu[i].totalScore<min){
      min=stu[i].totalScore;
      flag2=i;
    }
  }
  puts("\n************************总成绩最高************************");
  printf("最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  puts("************************总成绩最低************************");
  printf("最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
}
void chinese(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].chi;
  flag=0;
  min=max;
  flag2=0;
  puts("\n*************************语文*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].chi>max){
       max=stu[i].chi;
       flag=i;
    }
    if(stu[i].chi<min){
      min=stu[i].chi;
      flag2=i;
    }
    if(flag==flag2){
        printf("语文成绩都相等: ");
    }
  }
  printf("语文最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("语文最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].chi<60){
      printf("以下同学未及格,语文分数是: %f 学号是: %s\n",stu[i].chi,&stu
[i].stuID);
    }
  }
}
void math(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].mat;
  flag=0;
  min=stu[0].mat;
  flag2=0;
  puts("\n*************************数学*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].mat>max){
       max=stu[i].mat;
       flag=i;
    }
    if(stu[i].mat<min){
      min=stu[i].mat;
      flag2=i;
    }
    if(flag==flag2){
        printf("数学成绩都相等: ");
    }
  }
  printf("数学最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("数学最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].mat<60){
      printf("以下同学未及格,语文分数是: %f 学号是: %s\n",stu[i].mat,&stu
[i].stuID);
    }
  }
}

void english(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].eng;
  flag=0;
  min=max;
  flag2=0;
  puts("\n*************************英语*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].eng>max){
       max=stu[i].eng;
       flag=i;
    }
    if(stu[i].eng<min){
      min=stu[i].eng;
      flag2=i;
    }
    if(flag==flag2){
        printf("英语成绩都相等: ");
    }
  }
  printf("英语最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("英语最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].eng<60){
      printf("以下同学未及格,英语分数是: %f 学号是: %s\n",stu[i].eng,&stu
[i].stuID);
    }
  }
}

void physics(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].phy;
  flag=0;
  min=max;
  flag2=0;
  puts("\n*************************物理*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].phy>max){
       max=stu[i].phy;
       flag=i;
    }
    if(stu[i].phy<min){
      min=stu[i].phy;
      flag2=i;
    }
    if(flag==flag2){
        printf("物理成绩都相等: ");
    }
  }
  printf("物理最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("物理最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].phy<60){
      printf("以下同学未及格,物理分数是: %f 学号是: %s\n",stu[i].phy,&stu
[i].stuID);
    }
  }
}
void chemistry(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].che;
  flag=0;
  min=max;
  flag2=0;
  puts("\n*************************化学*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].che>max){
       max=stu[i].che;
       flag=i;
    }
    if(stu[i].che<min){
      min=stu[i].che;
      flag2=i;
    }
    if(flag==flag2){
        printf("化学成绩都相等: ");
    }
  }
  printf("化学最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("化学最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].che<60){
      printf("以下同学未及格,化学分数是: %f 学号是: %s\n",stu[i].che,&stu
[i].stuID);
    }
  }
}
void biology(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].bio;
  flag=0;
  min=max;
  flag2=0;
  puts("\n*************************生物*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].bio>max){
       max=stu[i].bio;
       flag=i;
    }
    if(stu[i].bio<min){
      min=stu[i].bio;
      flag2=i;
    }
    if(flag==flag2){
        printf("生物成绩都相等: ");
    }
  }
  printf("生物最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("生物最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].bio<60){
      printf("以下同学未及格,生物分数是: %f 学号是: %s\n",stu[i].bio,&stu
[i].stuID);
    }
  }
}
void politics(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].pol;
  flag=0;
  min=max;
  flag2=0;
  puts("\n*************************政治*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].pol>max){
       max=stu[i].pol;
       flag=i;
    }
    if(stu[i].pol<min){
      min=stu[i].pol;
      flag2=i;
    }
    if(flag==flag2){
        printf("政治成绩都相等: ");
    }
  }
  printf("政治最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("政治最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].pol<60){
      printf("以下同学未及格,政治分数是: %f 学号是: %s\n",stu[i].pol,&stu
[i].stuID);
    }
  }
}
void history(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].his;
  flag=0;
  min=max;
  flag2=0;
  puts("\n*************************历史*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].his>max){
       max=stu[i].his;
       flag=i;
    }
    if(stu[i].his<min){
      min=stu[i].his;
      flag2=i;
    }
    if(flag==flag2){
        printf("历史成绩都相等: ");
    }
  }
  printf("历史最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("历史最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].his<60){
      printf("以下同学未及格,历史分数是: %f 学号是: %s\n",stu[i].his,&stu
[i].stuID);
    }
  }
}
void geography(Student *stu){
  int i,flag,flag2;
  float max,min;
  max=stu[0].geo;
  flag=0;
  min=max;
  flag2=0;
  puts("\n*************************地理*************************");
  for(i=1;i<LENGTH;i++){
    if(stu[i].geo>max){
       max=stu[i].geo;
       flag=i;
    }
    if(stu[i].geo<min){
      min=stu[i].geo;
      flag2=i;
    }
    if(flag==flag2){
        printf("地理成绩都相等: ");
    }
  }
  printf("地理最高分是: %f 学号是: %s\n",max,&stu[flag].stuID);
  printf("地理最低分是: %f 学号是: %s\n",min,&stu[flag2].stuID);
  for(i=0;i<LENGTH;i++){
    if(stu[i].geo<60){
      printf("以下同学未及格,地理分数是: %f 学号是: %s\n",stu[i].geo,&stu
[i].stuID);
    }
  }
}
void lookup(Student *stu){
  char stuID[12];
  int i,flag=0;
  puts("\n************************查询学生成绩************************");
  printf("请输入学生学号查询学生成绩: ");
  gets(stuID);
  for(i=0;i<LENGTH;i++){
    if(strcmp(stuID,stu[i].stuID)==0){
      flag=1;
      break;
    }
  }
  if(flag){
    printf("学号: %s\n",stu[i].stuID);
    printf("语文: %f\n",stu[i].chi);
    printf("数学: %f\n",stu[i].mat);
    printf("英语: %f\n",stu[i].eng);
    printf("物理: %f\n",stu[i].phy);
    printf("化学: %f\n",stu[i].che);
    printf("生物: %f\n",stu[i].bio);
    printf("政治: %f\n",stu[i].pol);
    printf("历史: %f\n",stu[i].his);
    printf("地理: %f\n",stu[i].geo);
  }
  else{
    printf("没有该生成绩:\n");
  }
}

剑栈风樯各苦辛,别时冰雪到时春
2015-06-22 10:10
菁城
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2015-3-13
收藏
得分:0 
有错,但是不会改。。。
2015-06-22 10:18
快速回复:【求助】编写了一个结构体,函数调用总是显示不合法
数据加载中...
 
   



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

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