各位大侠小弟今个又遇一道C语言小难题,还望各位大侠拔刀相助啊,以下程序是输出学生的最高平均成绩的
答案:3 悬赏:70 手机版
解决时间 2021-11-12 01:47
- 提问者网友:嘚啵嘚啵
- 2021-11-11 05:36
各位大侠小弟今个又遇一道C语言小难题,还望各位大侠拔刀相助啊,以下程序是输出学生的最高平均成绩的
最佳答案
- 五星知识达人网友:爱难随人意
- 2021-11-11 06:20
你的第一个问题: 按Ctrl+F5 运行就可以
第二个问题 const int N=3; 可能你后面少加了;
第三个问题 不知道你编个啥,还return 一个结构体数组,你对数组操作只要传递首地址就可以了追问第一我用的是Win-tc的编译器;
第二 const int N=3,后面加了冒号但还是错的追答没用过TC,那第一个问题后面加个getch();
第二个问题 你是 const int N=3; 这样写的吗?这不会错的,我这里可以编译过
第二个问题 const int N=3; 可能你后面少加了;
第三个问题 不知道你编个啥,还return 一个结构体数组,你对数组操作只要传递首地址就可以了追问第一我用的是Win-tc的编译器;
第二 const int N=3,后面加了冒号但还是错的追答没用过TC,那第一个问题后面加个getch();
第二个问题 你是 const int N=3; 这样写的吗?这不会错的,我这里可以编译过
全部回答
- 1楼网友:玩家
- 2021-11-11 08:42
首先你要分清楚函数形参和实参到底是什么,max函数的形参是struct student stu[],说明它接收的是一个结构体类型的数组(最终是按指针的方式处理的),所以max(p)这个函数调用表达式中的p是一个指针,而print(struct student stu)函数的形参是一个结构体对象。
stu[m]返回的内容刚好作为print函数的实参,从而传递给print函数,进行格式化输出。、
void print(struct student stu)为什么我加个[]就错了呢?void print(struct student stu[])
关于这一点,上面也有提到,如果你加了[],就改变了形参的类型,由结构体对象改变为结构体指针,但是你print函数调用的地方以及print函数内部对形参的使用,都没有修改,这样就造成了你所遇到的错误。
print(max(p))的实参max p有关吗?它是一个值对吗
和你注释提的问题一致,print的形参就是max(p)函数的返回值,所以当然有关,但是你这里“一个值”的描述有点问题,我不太理解。
附:const int N = 3;这个语法上是没错的,建议你在windows下使用VS系列或者codeblocks编译器。追问不懂啊,这位大侠麻烦讲的在详细点啊,struct student max(struct student stu[])这个函数名和其他两个不一样啊,函数名开头就用struct student ,是用来定义max函数的吗?换个函数名可以吗?追答struct student max(struct student stu[])这个定义中,struct student是函数返回值类型,在这里就是你定义的学生结构体; max是函数名,这个名字可以任意换,只要函数体不变,其功能就不变; (struct student stu[])括号里面的内容是函数的形参,就是学生结构体类型的数组,这个函数的功能是从传入的学生结构体数组中找到一个平均分最高的学生信息返回追问这位大侠,那也就是说max函数的返回值stu[m]的类型就是struct student,也就是结构体类型。
- 2楼网友:想偏头吻你
- 2021-11-11 07:08
const int N=3;
不正确是因为老式的编译器有的不支持这个。
还有你要明白C中的函数调用传递的是实参的拷贝,也就是说在函数调用时,把实参的内容进行一份拷贝放到内存中的另一个地方,然后把这个拷贝传递给函数形参;
当结构体较大时,这种拷贝工作会造成效率的下降,所以需要在一个函数内对结构进行操作时,传递的是一个指向结构的指针。
这样虽然还是要对这个指针进行拷贝,但是拷贝的数据量就很小了,软件效率会有提升。
不正确是因为老式的编译器有的不支持这个。
还有你要明白C中的函数调用传递的是实参的拷贝,也就是说在函数调用时,把实参的内容进行一份拷贝放到内存中的另一个地方,然后把这个拷贝传递给函数形参;
当结构体较大时,这种拷贝工作会造成效率的下降,所以需要在一个函数内对结构进行操作时,传递的是一个指向结构的指针。
这样虽然还是要对这个指针进行拷贝,但是拷贝的数据量就很小了,软件效率会有提升。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯