首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

每日一道c语言编程题,第十四题,求两数的最大公约数

用户输入两个数,求这两个数的最大公约数。

#include

int gcd(int a, int b);

int main() {

  int a, b;

  printf("请输入两个正整数:\n");

  scanf("%d %d", &a, &b);

  if (b > a) {

      int temp = a;

      a = b;

      b = temp;

  }

  printf("%d 和 %d 的最大公约数是 %d\n", a, b, gcd(a, b));

  return 0;

}

int gcd(int a, int b) {

  int temp;

  while (b != 0) {

      temp = a % b;

      a = b;

      b = temp;

  }

  return a;

}

在计算最大公约数时,两个数的大小关系并不影响计算结果。因此,我们可以在程序中对输入的两个数进行大小比较,并将较大的数赋值给a,较小的数赋值给b,从而确保a是较大的数。

在修改后的代码中,我们使用了一个if语句来判断b是否大于a,如果是,则交换ab的值。这里我们使用了一个中间变量temp来完成交换操作。最后,我们调用gcd函数,求解两个数的最大公约数,并输出结果。

需要注意的是,如果输入的两个数相等,则它们的最大公约数就是它们本身,因此在程序中没有对这种情况进行特殊处理。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230309A05RAG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券