这道C语言的答案为什么是这样?

2025-04-30 20:15:11
推荐回答(3个)
回答1:

1、“能整除形参x且不是偶数的各整数” 是说求“各整数”。这个“各整数”满足两个特征:“能整除形参x”, “不是偶数”,这两个特征写成代码就是:((x%i==0)&&(i%2))

2、“这些除数的个数通过形参n返回”, 是通过形参返回,而不是返回值返回。如果用return就 是函数的返回值。形参是n,两条语句“
*n=0;" 和 ”(*n)++“ 即为将形参n指向的int型变量赋值为“这些除数的个数”。

回答2:

1.你写错了。是i%2不是i&2。%是取余除,所以i%2不为0就说明i不能被2整除,不能被2整除的整数肯定不是偶数,这不刚好符合要求吗?
2.你把“返回”理解得太狭隘了,n是指针,当然会在fun返回时“带回来”被fun改变了的值。函数返回一个值,不一定一定要用函数返回,用指针和全局变量都能完成。当然你把fun定义成有返回值的函数int fun(),最后用一句return *n也能行。

回答3:

1、题目说 能整除形参x且不是偶数的各整数,不是x不是偶数,而是所求的数i要求不是偶数。能整除形参x的条件是(x%i==0)而i不是偶数的条件是(i%2),两者都要成立,则写成if((x%i==0)&&(i%2));
2、n是通过指针方法传到函数中来,在函数内已对n作修改