第一种(for循环)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, min, k, a, b;
printf("请输入两个整数:\n");
scanf("%d%d", &a, &b);
if (a>b)//此处if else语句可以删除(只是为了少执行几步程序)
min = b;
else
min = a;
for (i = min; i>0; i--)//如果删了上面的if else这要改为i=a或b
{
if ((a%i == 0) && (b%i == 0))//判断两个同时取余为0
{
k = i;
printf("%d", k); break;
}
}
return 0;
}
第二种方法(while循环)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int tmp, a, b;
printf("请输入两个整数:\n");
scanf("%d%d", &a, &b);
while (a%b != 0)
{
tmp=a%b;//取余
a = b;//交换a,b可避免a比b小
b = tmp;
}
printf("%d\n",b);
return 0;
}
原文地址:https://blog.51cto.com/14233078/2366221
时间: 2024-11-08 23:32:18