#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int m = 0;
int n = 0;
int i = 0;
if(m<n)
{
int tmp = m;
m = n;
n = tmp;
}
if(m%n = 0)
{
printf(”最大公约数是n",n);
}
else
{
while(m%n == i)
{
m = n;
n = i;
if(m%n == 0)
{
printf("最大公约数是n",n);
break;
}
}
}
return 0;
}
int main()
{
int a,b;
int c=0;
scanf("%d %d", &a, &b);
while (c = a % b)
{
a = b;
b = c;
}
printf("%d\n", b);
return 0;
}
这个是我写的代码,你可以看看~
你的程序里i一直不变,永远是0吗
#include <stdio.h>
void swap(int *a, int *b)
{
int t = *a;
*a = *b;
*b = t;
}
int gcd(int a, int b)
{
if (a > b)
swap(&a, &b);
int r = b % a;
if (r == 0)
return a;
return gcd(r, a);
}
int main()
{
int a, b;
scanf("%d%d", &a, &b);
printf("%d", gcd(a, b));
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int m,n,i;
scanf("%d%d", &m, &n);
if (m<n)
{
m = m^n;
n = m^n;
m = m^n;
}
while (i=m%n)
{
m = n;
n = i;
}
printf("最大公约数是%d", n);
return 0;
}
printf那里第一个n换成%d