2301_80350165 2023-12-26 10:00 采纳率: 66.7%
浏览 20
已结题

C语言程序设计,越简单越好,没有限制,

使用函数实现一个功能相对完整的系统每个功能模块,定义成一个或多个功能单一的子函数,每个子函数不能只有一应尽量完整的实现功能功能子函数应至少有4个(含4个)以,总有效代码行数(不包含空行和大括号)不少于60行。用基础代码进行编写,必须要有4个子函数,子函数不能太短

  • 写回答

17条回答 默认 最新

  • threenewbee 2023-12-26 10:03
    关注

    这个简单,你希望我手工编写一个可以给我留言,题目你定。
    或者可以参考别的 ai 人士的回答。

    #include <stdio.h>
    #include <math.h>
    void szys()
    {
        printf("请输入一个表达式,比如1+1");
        float a, b;
        char op;
        scanf("%f%c%f", &a, &op, &b);
        float c = 0;
        if (op == '+')
            c = a + b;
        else if (op == '-')
            c = a - b;
        else if (op == '*')
            c = a * b;
        else if (op == '/')
        {
            if (b == 0)
            {
                printf("除数不为0");
                return;
            }
            else
            {
                c = a / b;
            }
        }
        printf("%f%c%f=%f", a, op, b, c);
    }
    void qiugen()
    {
        printf("请分别输入一元二次方程的系数a,b,c逗号分隔");
        float a,b,c;
        scanf("%f%f%f", &a, &b, &c);
        float pb = b * b - 4 * a * c;
        if (pb == 0)
        {
            float x = -b / (2 * a);
            printf("方程有唯一根 %f", x);
        }
        else if (pb > 0)
        {
            float x1 = (-b + sqrt(pb)) / (2 * a);
            float x2 = (-b - sqrt(pb)) / (2 * a);
            printf("方程有两个根,分别是 %f,%f", x1, x2);
        }
        else
        {
            printf("方程无实数根");
        }
    }
    void tj()
    {
        printf("统计求和求平均:请输入一组正整数,输入0结束");
        int n = 0, sum = 0;
        while (1)
        {
            int x;
            scanf("%d", &x);
            if (x == 0) break;
            sum += x;
            n++;
        }
        if (n == 0)
            printf("无输入");
        else
            printf("总和是 %d, 平均是 %.2f", sum, sum * 1.0 / n);
    }
    void yzl()
    {
        printf("计算圆周率:");
        float sum = 0;
        int sn = 1;
        for (int i = 1; i <= 10000; i += 2, sn *= -1)
            sum += sn * 1.0 / i;
        float pi = sum * 4;
        printf("圆周率约等于 %f", pi);
    }
    void gcdlcm()
    {
        printf("计算最大公约数和最小公倍数,请输入两个整数,逗号隔开:");
        int a, b;
        scanf("%d%d", &a, &b);
        if (a > b) { int t = a; a = b; b = t; }
        int gcd = 1;
        for (int i = a; i >= 1; i--)
        {
            if (a % i == 0 && b % i == 0)
            {
                gcd = i;
                break;
            }
        }
        int lcm = a * b / gcd;
        printf("最大公约数是 %d, 最小公倍数是 %d", gcd, lcm);
    }
    int menu()
    {
        while (1)
        {
            printf("\n多功能计算器\n");
            printf("1 四则运算\n");
            printf("2 一元二次方程求根\n");
            printf("3 统计功能\n");
            printf("4 计算圆周率\n");
            printf("5 计算最大公约数最小公倍数\n");
            printf("0 退出\n");
            printf("其它 重新显示本菜单\n");
            int x;
            int y = scanf("%d", &x);
            if (y != 1) continue;
            if (x < 0 || x > 5) continue;
            return x;
        }
    }
    int main()
    {
        int choice;
        while (1)
        {
            choice = menu();
            if (choice == 0) break;
            else if (choice == 1)
                szys();
            else if (choice == 2)
                qiugen();
            else if (choice == 3)
                tj();
            else if (choice == 4)
                yzl();
            else if (choice == 5)
                gcdlcm();
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(16条)

报告相同问题?

问题事件

  • 系统已结题 1月6日
  • 已采纳回答 12月29日
  • 创建了问题 12月26日