为什么for循环没有给出阶乘?

时间:2015-10-11 05:05:16

标签: c for-loop

我使用for循环获取数字的阶乘,但代码不起作用。任何人都可以使用for循环修复错误吗?

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main() {
    /*35.   Making a program to give factorial */
    int factorial = 1;
    int i = 1;
    int num;

    printf("Enter the number whose factorial needed");
    scanf_s("%d", &num);

    for (i = 1; i <= num; i--) {
        factorial *= i;            
        printf("%d\n", factorial);
    }
    _getch();
    return 0;
}

3 个答案:

答案 0 :(得分:3)

在for循环中将i--更改为i ++

答案 1 :(得分:3)

我相信发生这种情况的原因是因为你有以下几点 for(int i =1;i <num; i--)当你真的想要i ++时;

答案 2 :(得分:0)

您的for循环不正确,递增计数器而不是递减

for (i=1;i <= num;i++) {
//-----------------^