我是C编程语言的新手,正在学习函数。我决定编写一个简单的程序来使用函数对数字求平方。我得到了所需的输出,但是我想知道是否正确实现了它?
更精确地说,如何改进此代码?
#include <stdio.h>
#include <cs50.h>
int square(int x);
int number;
int main(void)
{
printf("Which number would you like to square? ");
number = get_int();
printf("The square of %i is %i\n", number, square(number));
return 0;
}
int square(int x)
{
for (int i = 1; i <= number; i++)
{
number = x * x;
}
return number;
}
答案 0 :(得分:1)
全局变量不好!坏坏坏!实际上,某些语言根本不允许。让我们尽可能减小number
的范围:
int main(void) {
printf("Which number would you like to square? ");
int number = get_int();
printf("The square of %i is %i\n", number, square(number));
return 0;
}
现在,让我们修复平方函数:
int square(int x) {
return x * x;
}
就像您在计算器上对数字求平方一样。
答案 1 :(得分:0)
您在代码中使用了全局变量number
!这些变量即使在我们使用完之后仍保留在内存中,这会带来很多复杂性和不必要的内存使用
您可以像这样编写平方函数:
int square(int x) {
return x * x;
}
但是,最好还是编写代码以充分利用它!如果以后需要计算该数字的Cube,那么尝试编写幂函数甚至递归尝试吧!