求出最大数和最小数的最大公约数。要求用数组实现。
程序运行结果如下:
Input 10 numbers:
15 23 56 87 94 105 78 19 22 43↙
maxNum=105
minNum=15
15
</pre><pre code_snippet_id="604517" snippet_file_name="blog_20150213_4_3512985" name="code" class="cpp">#include <stdio.h>
#include <stdlib.h>
#define N 10
int Gcd(int a, int b)
{
int tmp, c;
if (a<b)
{
tmp = a;
a = b;
b = tmp;
}
c = b%a;
while (c)
{
a = b;
b = c;
c = a%b;
}
return b;
}
int main()
{
int a[N];
int i, maxNum, minNum, res;
printf("Input 10 numbers:\n");
for (i = 0; i < N; ++i)
{
scanf("%d", &a[i]);
}
maxNum = a[0];
minNum = a[0];
for (i = 1; i < N; ++i)
{
maxNum = a[i] > maxNum ? a[i] : maxNum;
minNum = a[i] < minNum ? a[i] : minNum;
}
printf("maxNum=%d\n",maxNum);
printf("minNum=%d\n",minNum);
res = Gcd(maxNum, minNum);
printf("%d", res);
return 0;
}