因为你的代码没有编译错误,运行出来结果就是这样子。
只不过你的代码没有实现求5!
因为程序运行的是if里面的,没有运行else里的,所以没有执行printf打印,而if里执行完后没有输出,所以就是这样的。
#include<stdio.h>
int main(){
int i,j,m;
i=2; j=1;
j = i*j;
while (i<=4){
i = i+1;
j = i*j;
}
m=j;
printf("5! = %d",m);
return 0;
}
因为i开始是2,所以i<=5,进入了if,就会不执行else。if应该用while循环代替。
for版代码:
#include <stdio.h>
int main() {
int res = 1, i = 1;
for (; i <= 5; ++i) {
res *= i;
}
printf("%d\n", res);
return 0;
}
while版代码:
#include <stdio.h>
int main() {
int res = 1, i = 1;
while (i <= 4) {
res *= ++i;
}
printf("%d\n", res);
return 0;
}
哪里不懂私信我。
求5!起码得有循环吧。你这段代码没有循环。。i是2 2<=5所以直接走if 了