double fac(int n)
{
int i=1;
double fac=1;
for(i=1;i<=n;++i)
{
fac=fac*i;
}
return(fac);
}
int main()
{
int n;
double fac;
scanf("%d",&n);
fac=fac(n);
printf("%.3f",fac);
return 0;
}
9 个解决方案
#1
让编译器告诉你不是更好
#2
why?
#3
我找到答案了。
全局变量名和函数名不能相同。此外,若局部变量名与全局变量名或函数名相同,则在该局部变量作用范围内不能使用相应的全局变量或函数。
全局变量名和函数名不能相同。此外,若局部变量名与全局变量名或函数名相同,则在该局部变量作用范围内不能使用相应的全局变量或函数。
#4
此时编译器无法把fac(n)推演成一个函数调用
#5
全局变量名和函数名不能相同。此外,若局部变量名与全局变量名或函数名相同,则在该局部变量作用范围内不能使用相应的全局变量或函数。
--------------------------------------------
也就是在同一个作用域范围内不能引入两个相同的名字,因为会引起解析冲突。
若局部变量名与全局变量名或函数名相同,则在该局部变量作用范围内,也不是不能使用对应的全局量,可以用block
比如 int i = 0;
int main()
{
int i;
// 此处只有local 的i可见
// open a new block
{
// 此处则只有全局的i 可见
}
}
--------------------------------------------
也就是在同一个作用域范围内不能引入两个相同的名字,因为会引起解析冲突。
若局部变量名与全局变量名或函数名相同,则在该局部变量作用范围内,也不是不能使用对应的全局量,可以用block
比如 int i = 0;
int main()
{
int i;
// 此处只有local 的i可见
// open a new block
{
// 此处则只有全局的i 可见
}
}
#6
让
#7
不太清楚,不过最好不要同名了.
#8
写代码的可贵之处就是规范性,老老实实的写代码,对你而言是没有坏处的。
过多的去抠语法,吃亏的肯定是你自己,大部分编译器并不是全部支持 C 的全部语法的。
刚开始写代码应该在健壮性、可读性、效率上苦下功夫,很多东西自然而然就能体会。
慢慢的你所关注的就不再是这些琐碎的语法,而是整体的架构。这是一个质的提高。
这是别人告诉俺的,不过不幸的是俺还是处在初级阶段,遗憾!!!
过多的去抠语法,吃亏的肯定是你自己,大部分编译器并不是全部支持 C 的全部语法的。
刚开始写代码应该在健壮性、可读性、效率上苦下功夫,很多东西自然而然就能体会。
慢慢的你所关注的就不再是这些琐碎的语法,而是整体的架构。这是一个质的提高。
这是别人告诉俺的,不过不幸的是俺还是处在初级阶段,遗憾!!!
#9
可以相同,在编译器填写符号table的时候,类型写的变量
函数以区分
函数以区分
#1
让编译器告诉你不是更好
#2
why?
#3
我找到答案了。
全局变量名和函数名不能相同。此外,若局部变量名与全局变量名或函数名相同,则在该局部变量作用范围内不能使用相应的全局变量或函数。
全局变量名和函数名不能相同。此外,若局部变量名与全局变量名或函数名相同,则在该局部变量作用范围内不能使用相应的全局变量或函数。
#4
此时编译器无法把fac(n)推演成一个函数调用
#5
全局变量名和函数名不能相同。此外,若局部变量名与全局变量名或函数名相同,则在该局部变量作用范围内不能使用相应的全局变量或函数。
--------------------------------------------
也就是在同一个作用域范围内不能引入两个相同的名字,因为会引起解析冲突。
若局部变量名与全局变量名或函数名相同,则在该局部变量作用范围内,也不是不能使用对应的全局量,可以用block
比如 int i = 0;
int main()
{
int i;
// 此处只有local 的i可见
// open a new block
{
// 此处则只有全局的i 可见
}
}
--------------------------------------------
也就是在同一个作用域范围内不能引入两个相同的名字,因为会引起解析冲突。
若局部变量名与全局变量名或函数名相同,则在该局部变量作用范围内,也不是不能使用对应的全局量,可以用block
比如 int i = 0;
int main()
{
int i;
// 此处只有local 的i可见
// open a new block
{
// 此处则只有全局的i 可见
}
}
#6
让
#7
不太清楚,不过最好不要同名了.
#8
写代码的可贵之处就是规范性,老老实实的写代码,对你而言是没有坏处的。
过多的去抠语法,吃亏的肯定是你自己,大部分编译器并不是全部支持 C 的全部语法的。
刚开始写代码应该在健壮性、可读性、效率上苦下功夫,很多东西自然而然就能体会。
慢慢的你所关注的就不再是这些琐碎的语法,而是整体的架构。这是一个质的提高。
这是别人告诉俺的,不过不幸的是俺还是处在初级阶段,遗憾!!!
过多的去抠语法,吃亏的肯定是你自己,大部分编译器并不是全部支持 C 的全部语法的。
刚开始写代码应该在健壮性、可读性、效率上苦下功夫,很多东西自然而然就能体会。
慢慢的你所关注的就不再是这些琐碎的语法,而是整体的架构。这是一个质的提高。
这是别人告诉俺的,不过不幸的是俺还是处在初级阶段,遗憾!!!
#9
可以相同,在编译器填写符号table的时候,类型写的变量
函数以区分
函数以区分