
求能整除形参x且不是偶数的所有整数,通过形参n返回。 为啥这样写是错的
Panacea 中午好🌞🌞🌞
本答案参考ChatGPT-3.5
代码存在以下问题:
if 语句中的条件判断符号错误。应该使用双等号 == 表示相等判断。if 语句中的逻辑运算符错误。应该使用逻辑与运算符 && 表示同时满足两个条件。pp[j++]=i; 应该修改为 pp[j++]=i; (*n)++;,以便在列表中记录整数的同时递增 n 的值。修正后的代码应该如下所示:
#include <stdio.h>
void fun(int x, int pp[], int *n) {
int i = 0;
int j = 0;
*n = 0;
for (i = 1; i <= x; i++) {
if ((x % i == 0) && (i % 2 != 0)) {
pp[j++] = i;
(*n)++;
}
}
}
int main() {
int x, aa[1000], n, i;
printf("\nPlease enter an integer number:\n");
scanf("%d", &x);
fun(x, aa, &n);
printf("\nThe integers that can divide %d and are not even are:\n", x);
for (i = 0; i < n; i++) {
printf("%d ", aa[i]);
}
return 0;
}
修正后的代码将正确地求出能整除形参 x 且不是偶数的所有整数,并将其存储在数组 aa 中,通过形参 n 返回整数的数量。