写一个多功能程序,用多函数进行设计,需实现如下功能:
(1)计算3个数的平均值;
(2)输出九九乘法表;
(3)求两个正整数的最大公约数;
(4)计算Fibonacci数列的第40个数;
(5)找一组整数的中位数。
整合代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//求平均数
void average()
{
double a, b, c;
printf("请输入3个数,以空格隔开:");
scanf("%lf %lf %lf", &a, &b, &c);
printf("平均值=%g\n", (a + b + c) / 3);
}
//乘法表
void cfb()
{
int i = 1, j = 1;
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= i; j++)
printf("%d*%d=%-4d", i, j, (i * j));
printf("\n");
}
}
//最大公约数
void gys()
{
int a, b, i;
printf("请输入2个整数,以空格隔开:");
scanf("%d %d", &a, &b);
if (a > b)
i = b;
else
i = a;
for (; i >= 1; i--)
{
if (a % i == 0 && b % i == 0)
break;
}
printf("%d和%d的最大公约数是%d\n", a, b, i);
}
//Fibonacci
void Fib()
{
int a[50];
int i;
a[1] = 1;
a[2] = 1;
for (i = 3; i <= 40; i++)
{
a[i] = a[i - 1] + a[i - 2];
}
printf("Fibonacci的第40个数是%d\n", a[40]); //a[0]没有,从a[1]开始,所有第40个数就是a[40]
}
//中位数
void midNmb()
{
int a[50];
int i = 0, j, n = 0, t;
printf("请输入数组元素个数:");
scanf("%d", &n);
printf("请输入%d个数:\n", n);
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
//排序
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - 1 - i; j++)
{
if (a[j] > a[j + 1]) //从小到大排序
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
if (n % 2 == 1)
printf("中位数是%d", a[n / 2]); //奇数个时,中位数是中间的值
else
printf("中位数是%.2f", (a[n / 2] + a[n / 2 - 1]) / 2.0); //数组元素偶数个时,中位数是中间两个数的平均值,保留2位小数
printf("\n");
}
int main()
{
int op;
while (1)
{
printf("1.求3个数的平均数\n");
printf("2.输出九九乘法表\n");
printf("3.求公约数\n");
printf("4.求序数的第40个数\n");
printf("5.求中位数\n");
printf("0.退出\n");
scanf("%d", &op);
switch (op)
{
case 0:return 0;
case 1:average(); break;
case 2:cfb(); break;
case 3:gys(); break;
case 4:Fib(); break;
case 5:midNmb(); break;
}
}
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!