我使用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;
}
答案 0 :(得分:3)
在for循环中将i--更改为i ++
答案 1 :(得分:3)
我相信发生这种情况的原因是因为你有以下几点
for(int i =1;i <num; i--)
当你真的想要i ++时;
答案 2 :(得分:0)
您的for
循环不正确,递增计数器而不是递减
for (i=1;i <= num;i++) {
//-----------------^