这个代码有什么不足之处(非模块化程序不足)

img

img


如果改写上述程序,其原型为int factor(int n)要求该函数计算并返回n的阶乘,并在main函数中调用,此时该怎么改(参考下图)

img

#include <stdio.h>
#include <assert.h>

int factor(int n)
{
    assert(n >= 0);
    if (n == 0)
        return 1;
    int result = 1;
    for (int i = 2; i <= n; i++)
        result *= i;
    return result;
}

int main()
{
    int s = 0;
    s = factor(5) + factor(6) + factor(8);
    printf("s = %d\n", s);
}