| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4922 人关注过本帖
标题:写一个学生管理系统的程序,有个错误调不出来 请各位大侠指教
取消只看楼主 加入收藏
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 18楼 吹水佬
好的谢谢你。
2017-05-12 20:26
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 19楼 wp231957
void score_max(struct student *p)
{
    int xh,max=(*p).score[0],t;
    printf("请输入要查找成绩最大的学生的学号:\n");
       scanf("%d",&xh);
    if((*p).stu_id==xh)
    {
        for(int i=1;i<3;i++)
        {
            if((*p).score[i]>max)
            {
                t=max;
                max=(*p).score[i];
                (*p).score[i]=t;
            }
        }
        printf("%d",max);
        //break;
    }
}
void score_average(struct student *p)
{
    int xh;
    float aver=0,sum=0;
    printf("请输入你要算平均值的学生的学号:\n");
     scanf("%d",&xh);
    if((*p).stu_id==xh)
    {
        for(int i=0;i<3;i++)
        {
            sum=sum+(*p).score[i];
        }
           aver=sum/3.0;
           printf("%f",aver);
    }
   
}
帮忙看下这两个函数呗,计算平均值和查找最大的成绩
输入的时候 有的学号能查出来有的不能。
2017-05-12 20:41
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 23楼 renkejun1942
???究竟什么地方错了 还请多指教 在下小白
2017-05-12 20:51
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 25楼 wp231957
图片附件: 游客没有浏览图片的权限,请 登录注册


这是怎么回事。
2017-05-12 21:07
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 26楼 wp231957
恩,,,对的 谢谢 刚开始没理解p++什么意思。。

我改过之后为什么还不对。。
2017-05-12 21:10
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 28楼 wp231957
#include<stdio.h>
void inquiry(struct student *p);
void score_max(struct student *p);
void score_average(struct student *p);
void score_alter(struct student *p);
void score_delete(struct student *p);
void score_count(struct student *p);

struct student
{
    char name[10];
    int stu_id;        
    int score[3];
    char sex;
    int age;
}a[3]={{"li ming",123456,a[0].score[0]=60,a[0].score[1]=67,a[0].score[2]=80,a[0].sex='w',a[0].age=10},
    {"wang ming",123457,a[1].score[0]=70,a[1].score[1]=90,a[1].score[2]=80,a[1].sex='m',a[1].age=12},
    {"li fei",123458,a[2].score[0]=30,a[2].score[1]=60,a[2].score[2]=100,a[2].sex='w',a[2].age=15}};;

int main()
{
    struct student *p;
    p=a;
    int xuanze;
    printf("菜单\n\
           0 退出 :\n\
           1 请输入学号查询学生的信息:\n\
           2 求某个学生的最高成绩: \n\
           3 求某个学生的平均成绩: \n\
           4 修改某个学生的第n门课程的成绩: \n\
           5 删除某个学生的成绩: \n\
           6 统计某个学生不及格课程的门数: \n");
    printf("请输入你的选择:0-6:");
    scanf("%d",&xuanze);
    switch(xuanze)
    {
    case 0:return 0;
    case 1:inquiry(p);break;
    case 2:score_max(p);break;
    case 3:score_average(p);break;
       /* case 4:score_alter(p);break;
        case 5:score_delete(p);break;
        case 6:score_count(p);break;*/
        default:printf("enter date error!:\n");
        return 0;
    }
    return 0;
}
void inquiry(struct student *p)
{
   
    int xh;
    printf("请输入学号:\n");
       scanf("%d",&xh);
    while(p!=NULL)
    {
        if((*p).stu_id==xh)
        {
            printf("姓名为:%s\n 学号为%d\n 成绩为%d %d %d\n 性别为%c\n 年龄为%d\n ",
                  (*p).name,(*p).stu_id,(*p).score[0],(*p).score[1],(*p).score[2],(*p).sex,(*p).age);
            break;
        }
        ++p;//相当于学生
    }
}
void score_max(struct student *p)
{
    int xh,max=(*p).score[0],t;
    printf("请输入要查找成绩最大的学生的学号:\n");
       scanf("%d",&xh);
     while(p!=NULL)
     {
         if((*p).stu_id==xh)
        {
          for(int i=1;i<3;i++)
           {
                if((*p).score[i]>max)
                {
                t=max;
                max=(*p).score[i];
                (*p).score[i]=t;
                }
           }
           printf("%d",max);
           break;
        }
        p++;
      }
}
void score_average(struct student *p)
{
    int xh,sum=0;
    float aver=0;
    printf("请输入你要算平均值的学生的学号:\n");
        scanf("%d",&xh);
    while(p!=NULL)
    {
        if((*p).stu_id==xh)
        {
          for(int i=0;i<3;i++)
           {
                sum=sum+(*p).score[i];
           }
              aver=sum/3.0;
              printf("%f",sum);
              break;
         }
       p++;
    }
}

谢谢你。
2017-05-12 21:11
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 32楼 wp231957
学号%d为什么加上这个就好了?
2017-05-12 21:25
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 34楼 wp231957
我刚才输不出来 就用sum试试能否输出 没把sum改掉就发给你了。  不好意思、、 谢谢你。
我记得我当时也是float型输得aver
2017-05-12 21:35
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 37楼 wp231957
恩好的谢谢你。
2017-05-12 21:41
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 44楼 wp231957
结构体还没讲完,,;链表什么的还没学。。
2017-05-12 22:26
快速回复:写一个学生管理系统的程序,有个错误调不出来 请各位大侠指教
数据加载中...
 
   



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

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