| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 401 人关注过本帖
标题:啊啊啊 以学号0结束输入! 每次程序都直接崩溃额 该用什么方法解决?
只看楼主 加入收藏
feng00831
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-1-6
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
啊啊啊 以学号0结束输入! 每次程序都直接崩溃额 该用什么方法解决?
有若干个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入这些学生的数据,以学号为0结束输入。要求输出每个学生的学号、姓名、3门课程的成绩、3门课程的平均成绩、平均成绩最高和最低的学生的数据。

搜索更多相关主题的帖子: 课程 
2013-01-06 04:51
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
我是来看崩溃的代码的

DO IT YOURSELF !
2013-01-06 06:32
feng00831
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-1-6
收藏
得分:0 
#include<stdio.h>
#define n 5
struct student
{int num;
char name[23];
float score[3];
int aver;};
int main()
{    void print2(struct student stu);
    void print1(struct student stu);   
    struct student max(struct student stu[]);
    struct student min(struct student stu[]);     
    struct student stu[n],*p=stu;
    int i;
    printf("请输入数据:以学号为0结束输入:n");
    for(i=0;i<n;i++)
    {
        scanf("%d%s%f%f%f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
            stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
            if (stu[i].num==0)
                {
                    break;
                }
    }
    for(i=0;i<n;i++)
    {
        printf("%dt%st%ft%ft%ft%fn",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].aver);
    }
    print1(max(p));
    print2(min(p));
}
struct student max(struct student stu[])   
{int i,m=0;   
  for(i=0;i<n;i++)
     if (stu[i].aver>stu[m].aver) m=i;     
  return stu[m];   
}
struct student min(struct student stu[])   
{int i,m=0;   
  for(i=0;i<n;i++)
     if (stu[i].aver<stu[m].aver) m=i;     
  return stu[m];   
}
void print1(struct student stud)   
{ printf("n成绩最高的学生是:n");
    printf("学号:%dn姓名:%sn三门课成绩:%5.1f,%5.1f,%5.1fn平均成绩:%6.2fn", stud.num,stud.name,stud.score[0],stud.score[1],stud.score[2],stud.aver);
 }
void print2(struct student stud)   
{ printf("n成绩最低的学生是:n");
    printf("学号:%dn姓名:%sn三门课成绩:%5.1f,%5.1f,%5.1fn平均成绩:%6.2fn",stud.num,stud.name,stud.score[0],stud.score[1],stud.score[2],stud.aver);
}
很笨拙的程序 不崩溃了 但输出是乱码。。。
2013-01-06 07:50
血雨萧瑟
Rank: 5Rank: 5
来 自:福州大学
等 级:职业侠客
帖 子:155
专家分:320
注 册:2012-11-19
收藏
得分:5 
回复 3楼 feng00831
怎么跟我的作业题如此相像呢?哥们你哪个学校的?

新手初学,可以拍砖。
游戏不是猛虎,网络在怎么发展网游都不可能消失只会越来越像一个世界。
2013-01-06 10:05
lupeifeng123
Rank: 2
等 级:论坛游民
帖 子:74
专家分:47
注 册:2012-12-13
收藏
得分:5 
学习了。。。。

一步一个脚印,贵在坚持。
2013-01-06 10:21
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:5 
原因在于 struct student stu[n],*p=stu;
这个数组没有分配空间,要么malloc,要么全局变量。
楼主直接这样用大概属于买空卖空吧,非法啊


新手路过。顺便瞎说

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2013-01-06 10:31
快速回复:啊啊啊 以学号0结束输入! 每次程序都直接崩溃额 该用什么方法解决?
数据加载中...
 
   



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

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