【发布时间】:2020-11-12 08:05:52
【问题描述】:
我是 C 和整体编程的初学者。
我有以下功能:
Students* printGrades(),它是指向结构 Student 和结构数组 Students student[32] 的类型指针。假设该结构包含有关学生姓名、ID 和成绩的数据。
正如任务所述,它应该返回一个 NULL 指针或一个指向具有最高成绩的学生的指针(我猜它是指一个元素,即姓名、ID、1 名学生的年级),具体取决于特定条件.假设我已经对数组进行了排序,因此最高学生的数据(姓名、ID、年级)位于顶部。
所以我面临的挑战是我真的不知道如何退货。我所做的是:
if (a condition) {
return NULL;
} else {
return student;
}
我只是返回了 NULL 或学生(我需要数组中第一个学生的数据,我只是返回了student,因为在这种情况下,只返回第一个元素,我认为这已经足够了这样,因为函数本身就是一个指针)。但是,正如我的导师所说,这是错误的(特别是 2 个返回命令),他没有给我任何提示(尽管他没有教过)。我在互联网上查找了它,但找不到执行此操作的方法 - 它们要么不合适,要么我们还不允许使用复杂的方法。
那么,你能告诉我如何返回一个 NULL 指针和一个指向一个学生的指针
【问题讨论】:
-
如果分数最高的学生是
N,则返回&student[N]。如果任何条件为真(也许你应该告诉我们哪一个?)返回 NULL。您不能返回 NULL 和指向学生的指针,只能返回 NULL 或指向学生的指针。 -
顺便说一句:
return student等价于return &student[0]。 -
是的,当然我不能同时退回它们,我只是将这两个条件都考虑在内(因此我说“和”)。但是,我实际上做了和你写的完全一样的事情