在C中打印数字的除数

时间:2016-05-31 07:42:19

标签: c

在我的程序中,如果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);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

此行不正确:

printf("%d",printdivisors(n));

应该是:

printdivisors(n);

请注意,如果您启用了编译器警告,则至少会收到3条有关此代码和其他代码问题的警告。对于gcc,您需要将-Wall添加到命令行。始终在启用警告的情况下进行编译,并始终注意任何警告。