【发布时间】:2021-02-14 02:16:12
【问题描述】:
这是查找给定非负整数的阶乘的代码之一。当我在此代码的 FOR 循环后使用大括号时,程序运行非常缓慢。我知道 for 循环可以在没有大括号的情况下用于单行代码,但我的代码在 for 循环中由两行组成。有人可以解释一下原因吗?
#include <stdio.h>
void main()
{
int input,i,fact=1;
//read user input//
printf("Enter the number :");
scanf("%d",&input);
for(i=1;i<=input;i++)
fact=fact*i;
printf("value of factorial %d is %d",input,fact);
}
【问题讨论】:
-
你把大括号放在代码的什么地方?
-
因为只有
faxt=fact*i;语句应该在循环中,而不是printf调用(用于打印完成的结果)?使用printf输出会大大减慢代码速度。 -
@Arsenic 我这样写:for(i=1;i
-
@Someprogrammerdude 是的,你是对的。我现在明白了。非常感谢。程序因此变慢了。
-
关于:
void main()根据 C 标准,main()只有两个有效签名(尽管一些不符合标准的编译器,如 Visual Studio,在使用其他签名时不会抱怨)有效签名是:int main( void )和int main( int argc, char *argv[] )
标签: c loops for-loop curly-braces