我是否正确实现了 Square 功能?

Have I implemented the Square function correctly?

我是 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;
}

全局变量不好!坏坏坏!事实上,有些语言根本不允许它们。让我们尽可能地缩小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;
}

就像您在计算器上计算平方数一样。

您在代码中使用了全局变量 number!这些变量即使在我们处理完它们后仍保留在内存中,这会造成很多复杂情况和不必要的内存使用

您可以像这样编写平方函数:

int square(int x) { return x * x; }

但是,最好编写代码以充分利用它!如果稍后您需要计算该数字的立方怎么办?所以尝试编写幂函数甚至递归尝试!