我是否正确实现了Square函数?

时间:2018-07-29 12:45:09

标签: c function cs50

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

2 个答案:

答案 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,那么尝试编写幂函数甚至递归尝试吧!