当前位置: 首页 > news >正文

网站建设制作设计营销公司杭州竞价推广外包托管

网站建设制作设计营销公司杭州,竞价推广外包托管,手机网站课程,什么是建设网站工具在C语言编程学习中,实现一个简易计算器是一个常见且有趣的练习项目。它不仅能帮助我们巩固基本的语法知识,如函数、循环、分支结构,还能让我们深入理解程序设计的逻辑。接下来,我们将分析三段实现简易计算器功能的C语言代码&#…

在C语言编程学习中,实现一个简易计算器是一个常见且有趣的练习项目。它不仅能帮助我们巩固基本的语法知识,如函数、循环、分支结构,还能让我们深入理解程序设计的逻辑。接下来,我们将分析三段实现简易计算器功能的C语言代码,探讨它们的特点和优势。

 

一、基础版本:简单直接的功能实现

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

 

void menu()

{

    printf("***1.add 2.sub****\n");

    printf("***3.mul 4.div****\n");

    printf("****** 0.exit ******\n");

    printf("********************\n");

    printf("请选择:");

}

 

int add(int x, int y)

{

    return x + y;

}

 

int sub(int x, int y)

{

    return x - y;

}

 

int mul(int x, int y)

{

    return x * y;

}

 

int div(int x, int y)

{

    return x / y;

}

 

int main()

{

    menu();

    int input = 0;

    scanf("%d", &input);

    int x = 0;

    int y = 0;

    printf("请输入:");

    scanf("%d%d", &x, &y);

    int ret = 0;

    switch (input)

    {

    case 1:

        ret = add(x, y);

        printf("结果为:%d\n", ret);

        break;

    case 2:

        ret = sub(x, y);

        printf("结果为:%d\n", ret);

        break;

    case 3:

        ret = mul(x, y);

        printf("结果为:%d\n", ret);

        break;

    case 4:

        ret = div(x, y);

        printf("结果为:%d\n", ret);

        break;

    case 0:

        printf("退出成功!\n");

        break;

    default:

        printf("输入错误,请重新输入!\n");

    }

    return 0;

}

 这个版本的代码结构清晰,易于理解。 menu 函数负责打印操作选项菜单,让用户选择要进行的运算。 add 、 sub 、 mul 、 div 四个函数分别实现加、减、乘、除四种基本运算。在 main 函数中,通过 switch 语句根据用户的选择调用相应的函数进行计算,并输出结果。如果用户输入0,则退出程序;输入其他无效选项时,提示错误。

 这种实现方式的优点是逻辑简单明了,初学者容易上手。但缺点也很明显,代码的扩展性和复用性较差,如果需要添加新的运算功能,需要在 switch 语句中添加新的分支,修改的地方较多。

 二、进阶版本:使用函数指针数组优化

 #define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

 

void menu()

{

    printf("***1.add 2.sub****\n");

    printf("***3.mul 4.div****\n");

    printf("****** 0.exit ******\n");

    printf("********************\n");

}

 

int add(int x, int y)

{

    return x + y;

}

 

int sub(int x, int y)

{

    return x - y;

}

 

int mul(int x, int y)

{

    return x * y;

}

 

int div(int x, int y)

{

    return x / y;

}

 

int main()

{

    int(*pf[5])(int, int) = { 0, add, sub, mul, div };

    int input = 0;

    int x = 0;

    int y = 0;

    do

    {

        menu();

        printf("请选择:");

        scanf("%d", &input);

        if (input == 0)

        {

            printf("退出成功!\n");

            return 0;

        }

        else if (input >= 1 && input <= 4)

        {

            printf("请输入:");

            scanf("%d%d", &x, &y);

            int ret = pf[input](x, y);

            printf("%d\n", ret);

        }

        else

        {

            printf("输入错误!");

        }

    } while (input);

 

    return 0;

}

 这个版本引入了函数指针数组 pf ,将四个运算函数的指针存储在数组中。通过 do-while 循环,不断显示菜单并获取用户输入。当用户输入有效选项时,直接通过函数指针数组调用相应的函数进行计算,大大简化了 switch 语句的复杂结构。

 这种实现方式的优势在于提高了代码的可维护性和扩展性。如果需要添加新的运算功能,只需要在函数指针数组中添加新的函数指针,而不需要大幅修改 main 函数中的逻辑。

 

三、改进版本:分离输出功能

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

 

void menu()

{

    printf("***1.add 2.sub****\n");

    printf("***3.mul 4.div****\n");

    printf("****** 0.exit ******\n");

    printf("********************\n");

    printf("请选择:");

}

 

int add(int x, int y)

{

    return x + y;

}

 

int sub(int x, int y)

{

    return x - y;

}

 

int mul(int x, int y)

{

    return x * y;

}

 

int div(int x, int y)

{

    return x / y;

}

 

void test(int m)

{

    printf("结果为:%d\n", m);

}

 

int main()

{

    menu();

    int input = 0;

    scanf("%d", &input);

    int x = 0;

    int y = 0;

    printf("请输入:");

    scanf("%d%d", &x, &y);

    int ret = 0;

    switch (input)

    {

    case 1:

        ret = add(x, y);

        test(ret);

        break;

    case 2:

        ret = sub(x, y);

        test(ret);

        break;

    case 3:

        ret = mul(x, y);

        test(ret);

        break;

    case 4:

        ret = div(x, y);

        test(ret);

        break;

    case 0:

        printf("退出成功!\n");

        break;

    default:

        printf("输入错误,请重新输入!\n");

    }

    return 0;

}

 这个版本在基础版本的基础上,将结果输出功能分离到 test 函数中。在 switch 语句的每个分支中,先调用相应的运算函数得到结果,再调用 test 函数输出结果。

 这样做的好处是将计算和输出功能解耦,使代码结构更加清晰,也便于后续对输出格式或方式进行统一修改。

 通过对这三段代码的分析,我们可以看到在C语言编程中,从简单的功能实现到逐步优化代码结构,提升代码的可维护性和扩展性是一个不断学习和进步的过程。每一次改进都体现了对C语言特性的更深入理解和应用,希望这些分析能帮助大家在C语言学习和编程实践中有所收获。

http://www.15wanjia.com/news/25002.html

相关文章:

  • 福州市工程建设质量管理协会网站关键词检测工具
  • 油漆网站moban广西seo公司
  • 沈阳网站搜索引擎优化seo工资水平
  • 美女和帅哥做私人动作的漫画的网站宁波seo推广优化公司
  • 如何做网赌网站昆明做网站的公司
  • oss可以做视频网站吗成都seo优化外包公司
  • app界面设计属于什么设计免费的seo优化工具
  • 国内一家做国外酒店团购的网站优化设计五年级下册数学答案
  • 做淘宝客网站的流程中国去中心化搜索引擎
  • 南通专业网站排名推广营销型网站建设论文
  • 官网seo哪家公司好北京seo优化哪家公司好
  • 新吴区推荐做网站价格网络宣传的好处
  • wordpress third主题seo学校培训
  • cgi做网站关键词数据分析工具有哪些
  • dw软件做二级连接网站徐州网站建设方案优化
  • 做一个网站后期维护需要多少钱seo引擎优化专员
  • 建设购物网站的方案百度客服电话人工服务
  • 新冠疫情最新数据消息百度seo推广是什么
  • android网站开发实例seo薪酬如何
  • 拦截网站做跳转惠州大亚湾经济技术开发区
  • 黄浦企业网站制作app优化建议
  • 南宁哪个网络公司建网站好北京做百度推广的公司
  • 什么是网站模块网游百度搜索风云榜
  • 网站顶级域名证书百度统计手机app
  • 泰国用什么网站做电商怎么弄一个网站平台
  • 深圳网页设计公司搜行者seo系统优化
  • wordpress音频播放列表广告优化师的工作内容
  • 安徽企业平台网站建设成都网站快速排名提升
  • 网站开发开发需求文档企业网站建设的基本流程
  • 网站设计制作一条龙多少钱b2b十大平台排名