| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 479 人关注过本帖
标题:求大神帮忙看看为什么调用不了sort函数
只看楼主 加入收藏
桉梣
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-5-24
结帖率:50%
收藏
 问题点数:0 回复次数:1 
求大神帮忙看看为什么调用不了sort函数
#include <stdio.h>
int input();
void sort(a);
void search(a);
void output(a);
void menu();
struct student
{
    char name[10];
    int ID;
    float score[3];
    float aver;
}stud[100];

int input()
{
    int i,a;
    printf("请输入总人数\n");
    scanf("%d",&a);
    for (i=0;i<a;i++)
    {
        printf("请输入第%d的学号:" ,i+1);
        scanf("%d",&stud[i].ID);
        printf("请输入第%d的姓名:" ,i+1);
        scanf("%s",stud[i].name);
        printf("请输入第%d的英语成绩,数学成绩,计算机成绩:" ,i+1);
        scanf("%f%f%f",&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);
    }
    return a;
}
void sort(int a)
{
    int q;
    int i,j;
    for (i=0;i<a;i++)//按学号从小到大排序
        for (j=0;j<(a-i);j++)
        {
            if (stud[i].ID>stud[i+1].ID)
                q=stud[i].ID;
                stud[i].ID=stud[i+1].ID;
                stud[i+1].ID=q;
        }
        for(i=0;i<a;i++)
{
 printf("%d,\n",stud[i].ID);
}
}
void search(int b)
{
    int a,i=0;
    int low=1;
    int high=(b-1);
    printf("请输入你要查找的学号\n");
    scanf ("%d",&a);
    if (a==stud[i].ID) //判断是否为第一个
    {
        printf("姓名%s",stud[i].name);
        printf("三科成绩%f,%f,%f",stud[i].score[0],stud[i].score[1],stud[i].score[2]);
    }
else if(a==stud[b-1].ID)//判断是否为最后一个
    {
        printf("查找人的姓名%s",stud[b-1].name);
        printf("查找人的三科成绩%f,%f,%f",stud[b-1].score[0],stud[b-1].score[1],stud[b-1].score[2]);
}
else
    {
        while (a!=stud[i].ID)
        {
            i=(low+high)/2;
            if (a==stud[i].ID)
            {
                printf("查找人的姓名%s",stud[i].name);
                printf("查找人的三科成绩%f,%f,%f",stud[i].score[0],stud[i].score[1],stud[i].score[2]);
                break;
            }
            if (a>stud[i].ID) low=i+1;
            if (a<stud[i].ID) high=i-1;
            if (high==low)
            {
                printf("没有此人\n");
                break;
            }
        }
    }

}

void output(int b)
{
    float aver=0;
    int i;
for(i=0;i<b;i++);
{
aver=(stud[i].score[0]+stud[i].score[0]+stud[i].score[0])/3;
printf("%d,%d,%d,%d",stud[i].score[0],stud[i].score[1],stud[i].score[2],aver);
}
}
void main()
{
   int a,k;
   menu();
   printf("\t请选择系统主菜单功能项:");      
 scanf("%d",&k);
 while(k>=1&&k<=4)  
 {
 switch(k)
  {
  case 1:input();break;           //添加学生成绩;   
  case 2:search(a);break;        //查找单个学生成绩;  
  case 3:sort(a);break;          //按各科成绩对全班同学成绩进行排序;
  case 4:output(a);break;
  default: break;   
}
printf("\t请选择系统主菜单功能项:");      
 scanf("%d",&k);
}
}
void menu()
{
 printf("\t******************************************************************\n");  
 printf("\t*********************** 学生成绩管理系统 *************************\n");
 printf("\t* 功能如下:                                                     *\n");   
 printf("\t*【1】 添加学生成绩                      【2】 查找学生成绩      *\n");
 printf("\t*【3】 排序学生成绩                      【4】 输出学生成绩      *\n");
 printf("\t******************************************************************\n");
}
搜索更多相关主题的帖子: include search 姓名 
2015-06-09 20:05
吾爱孟夫子
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-6-5
收藏
得分:0 
void sort(a);
 void search(a);
 void output(a); // 这声明没问题?
void main()
 {
    int a,k;
    menu();
    printf("\t请选择系统主菜单功能项:");      
scanf("%d",&k);
 while(k>=1&&k<=4)  
 {
 switch(k)
   {
   case 1:input();break;  //int input();你的函数声明。这里的input()函数应有返回值。 改为a=input();         
   case 2:search(a);break;      
   case 3:sort(a);break;         
  case 4:output(a);break;
   default: break;   
 }

昨天回的太急,还有个问题没说。
void sort(int a)
 {
     int q;
     int i,j;
     for (i=0;i        for (j=0;j<(a-i);j++)
         {
             if (stud[i].ID>stud[i+1].ID)//i和j这两个变量的功能是什么?
                 q=stud[i].ID;
                 stud[i].ID=stud[i+1].ID;
                 stud[i+1].ID=q;
         }
         for(i=0;i {
 printf("%d,\n",stud[i].ID);
 }
 }

[ 本帖最后由 吾爱孟夫子 于 2015-6-10 08:12 编辑 ]
2015-06-09 23:31
快速回复:求大神帮忙看看为什么调用不了sort函数
数据加载中...
 
   



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

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