作品:宿舍谁请喝奶茶

期末成绩出来了,宿舍约定:三个人里分最低的请大家喝奶茶(一样低就算前面的人)。输入 1、2、3 号的分数,输出谁请客和最低分。例如输入 72 85 64,输出: 3号请奶茶 最低分 64 程序有一处比错了对象。交对以后,换成你们宿舍的分数,

开始练习 →

传值改不动,传地址改得动

第 ④ 条路线学过:调用函数时,形参只是实参的一份副本,函数里改形参,外面的变量不会变。 想让函数改调用者的变量,就把变量的地址传进去: 形参写成指针:void add2(int *p); 调用时传地址:add2(&b);,这时 p

开始练习 →

swap 的经典一课

下面有两个交换函数:swap1 收两个值,swap2 收两个地址。main 现在调的是 swap1,运行一次:画布上 swap1 里明明换好了,a、b 却没变。 只改 main 里调用的那一行,让程序输出: a=8 b=3 代码里以 @yo

开始练习 →

母题:两个室友按身高排

输入两个室友的身高 a、b(厘米),调用 order2(&a, &b) 后要求 a <= b,输出 a 和 b。例如输入 178 165,输出: 165 178 order2 里交换了 x 和 y,看画布:函数里已经排

开始练习 →

变式 1:三门课分数从低到高

输入三门课的分数 a、b、c,用 swap 函数把它们排成从低到高,输出 a b c。例如输入 60 90 75,输出: 60 75 90 思路:先保证 a 最小(a 和 b 比、a 和 c 比),再让 b、c 排好。有一次调用传错了地址。

开始练习 →

变式 2:一次带回公约数和公倍数

两个社团分别每 m 天、每 n 天活动一次。函数 gl 要通过指针 g、l 一次带回两个结果:最大公约数和最小公倍数。例如输入 4 6,输出: 2 12 return 只能带回一个值,用指针参数就能带回好几个。可现在公倍数总是 0。

开始练习 →

变式 3:期末倒计时拆成时分秒

离期末考试还有 sec 秒。函数 split 通过三个指针带回时、分、秒,main 按 时:分:秒 输出,每段两位。例如输入 7384,输出: 02:03:04

开始练习 →

变式 4:一周最高温和最低温

输入天数 n 和每天的气温(整数,可能是负数)。函数 minmax 通过 pmax、pmin 带回最高温和最低温。例如输入: 4 10 15 8 12 输出: 15 8

开始练习 →

二级 · 程序填空:写一个能用的 swap

下面的程序调用 swap 交换 a、b,输出 8 3。请在【】处填入正确的内容。 #include <stdio.h> void swap(【0】) { int t; t = *p; *p = *q;

开始练习 →

二级 · 程序改错:奇偶数字分别求和

函数 fun 的功能是:分别求出正整数 n 各位上奇数数字之和与偶数数字之和,通过 odd、even 带回。例如 n 为 2023 时输出 3 4。 程序中有两处错误。请改正 found 下面一行中的错误,不要改动其他地方,也不要增删行。

开始练习 →