简单C语言编写函数,其功能分别为: 求十个整数的次大值和次小值并求这两个整数的最大公约数和最小公倍数
时间: 2024-06-09 16:05:44 浏览: 101
下面是一个简单的 C 语言程序,实现了求十个整数的次大值和次小值,并求这两个整数的最大公约数和最小公倍数的功能:
```c
#include <stdio.h>
int gcd(int a, int b);
int lcm(int a, int b);
int main()
{
int a[10], max, second_max, min, second_min, i, j, gcd_value, lcm_value;
printf("请输入十个整数:\n");
for (i = 0; i < 10; i++)
scanf("%d", &a[i]);
max = second_max = a[0];
min = second_min = a[0];
for (i = 1; i < 10; i++)
{
if (a[i] > max)
{
second_max = max;
max = a[i];
}
else if (a[i] > second_max && a[i] != max)
second_max = a[i];
if (a[i] < min)
{
second_min = min;
min = a[i];
}
else if (a[i] < second_min && a[i] != min)
second_min = a[i];
}
printf("次大值为:%d,次小值为:%d\n", second_max, second_min);
gcd_value = gcd(second_max, second_min);
lcm_value = lcm(second_max, second_min);
printf("最大公约数为:%d,最小公倍数为:%d\n", gcd_value, lcm_value);
return 0;
}
int gcd(int a, int b)
{
int temp;
while (b != 0)
{
temp = b;
b = a % b;
a = temp;
}
return a;
}
int lcm(int a, int b)
{
return a * b / gcd(a, b);
}
```
程序中,`gcd` 函数和 `lcm` 函数分别用于求最大公约数和最小公倍数。在 `main` 函数中,先输入十个整数,然后找出其中的最大值和次大值,最小值和次小值。最后,调用 `gcd` 函数和 `lcm` 函数分别求出这两个整数的最大公约数和最小公倍数,并输出结果。
阅读全文