题目是求5!,请问一下我这个运行结果怎么会这样子?

 

因为你的代码没有编译错误,运行出来结果就是这样子。

只不过你的代码没有实现求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 了