在我的程序中,如果n = 6
我得到输出,则输出不正确:1 2 3 6 7
int main()
{
int n;
scanf("%d", &n);
printf("%d", printdivisors(n));
return 0;
}
void printdivisors(int n) {
int i;
for (i = 1; i <= n; i++) {
if(n % i == 0) {
printf("%d ", i);
}
}
}
答案 0 :(得分:1)
此行不正确:
printf("%d",printdivisors(n));
应该是:
printdivisors(n);
请注意,如果您启用了编译器警告,则至少会收到3条有关此代码和其他代码问题的警告。对于gcc,您需要将-Wall
添加到命令行。始终在启用警告的情况下进行编译,并始终注意任何警告。