m0_74382820 2022-12-09 08:04 采纳率: 50%
浏览 38
已结题

怎样编写一个程序来实现以下功能

写一个多功能程序,用多函数进行设计,需实现如下功能:
(1)计算3个数的平均值;
(2)输出九九乘法表;
(3)求两个正整数的最大公约数;
(4)计算Fibonacci数列的第40个数;
(5)找一组整数的中位数。

  • 写回答

2条回答 默认 最新

  • 关注

    整合代码如下:

    #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;
            }
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月17日
  • 已采纳回答 12月9日
  • 创建了问题 12月9日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测