快速查找指定学号学生的信息及在学生列表中的位置;
查找语文成绩比数学成绩好的学生;
统计每个专业的人数;
1、定义函数体(也可以用数组)来存储学生信息:a学号 b姓名(字符串) c专业(按照要求定义)d语文成绩 e数学成绩 f体育成绩
2、快速查找:找到这个学生的学号,把这个学号对应的函数体下标记下,便可以找出学生信息
3、将学生函数体中的 d语文成绩和e数学成绩 遍历一遍,每次比较一下,如果语文成绩比数学成绩好输出
4、每发现一个专业就将这个专业的 计数cnt 加1,便能统计出每个专业的人数
如有错误,请大神指出。望采纳,谢谢
首先不确定你是直接要代码,还是要方案。如果要方案的话,可以给你说下编写代码的方案;如果要代码的话,估计得等段时间,这几天郑州情况特殊,没有条件写。我就简单的说说,希望对你有帮助。
第一:解决这类问题,主要是想好数据怎么存储。这个估计是你的一个作业,不涉及到数据库。因此学生的信息可以定义一个结构体,例如
struct Student{
int sno;
char[20] sname;
char[50] smajor;//专业
int chinese_score;
int math_score;
int sport_score;
};
第二:定义一个结构体数组,即Student st[100],即100个学生信息。这个长度可以自己定义,接着把每个学生的信息依次赋值到这个数组中。
第三:解决上面的三个问题:
问题1:根据学号信息快速找到学生信息,可以通过for循环,依次比对st中的每个学号是否与要求的相等,如果相等,则返回数组的下标,即对应的位置。
问题2:for循环,比较st中每项的语文成绩和数学成绩的大小,如果语文成绩大于数学成绩,则输出对应的学生信息,并继续向下执行,直到for循环结束。
问题3:预先知道专业的种类,给每个专业定义一个统计变量。均初始化0,使用for循环,在循环体中判断当前项的专业是哪一个,如果等于某个专业,则该专业的统计变量+1,continue,继续执行for循环。直到遍历结束,就得到每个专业的人数。