• c语言四则运算小程序


    1. 本文源程序代码来源于csdn一位博主:
      文章链接:http://t.csdnimg.cn/L29fs
      原程序简洁凝练,以简短的代码写出了一个加法运算器。
    2. 以下是运行结果(本文全程用visual studio 2022进行代码的编写与运算):
    3. 通过对该代码的运算,我个人认为有以下问题:
      (1)尽管该代码简洁明了,但只有加法运算,缺少减、乘、除的运算。
      (2)算法集中于主函数,未在外设立单独的函数。
      (3)没有相应的提升语句,使用者可能不清楚如何使用。
      针对以上问题,我对代码进行了改进,加入了减、乘、除三则运算,加入了提升语句,在主函数外编写加减乘除的四则运算函数。
    4. 以下是修改后的代码:
    点击查看代码
    #include 
    
    // 加法函数
    int add(int a, int b) {
        return a + b;
    }
    
    // 减法函数
    int subtract(int a, int b) {
        return a - b;
    }
    
    // 乘法函数
    int multiply(int a, int b) {
        return a * b;
    }
    
    // 除法函数
    float divide(int a, int b) {
        if (b != 0)
            return (float)a / b;
        else {
            printf("错误:除数不能为零\n");
            return 0.0;
        }
    }
    
    int main() {
        int first, second;
        char operator; // 用于存储运算符
    
        // 提示用户输入两个数字和运算符
        printf("请输入两个数字和运算符(+、-、*、/),用空格分隔:");
    
        // 读取输入的数字和运算符
        scanf_s("%d %c %d", &first, &operator, sizeof(operator), &second);
    
        // 根据运算符执行相应的操作并输出结果
        switch (operator) {
        case '+':
            printf("结果:%d\n", add(first, second));
            break;
        case '-':
            printf("结果:%d\n", subtract(first, second));
            break;
        case '*':
            printf("结果:%d\n", multiply(first, second));
            break;
        case '/':
            printf("结果:%f\n", divide(first, second));
            break;
        default:
            printf("错误:不支持的运算符\n");
            break;
        }
    
        return 0;
    }
    
    

    5.修改后运行截图如下:




    6.总结:
    (1)首次对原程序的复制粘贴后,始终运行不了,仔细检查后发现是scanf未替换成scanf_s,替换后正常运行,在高版本的vs中scanf被认为是不安全的函数,因此运行会报错。
    (2)过对该程序的改写,尽管代码量并不多,但运用的知识还是不少的,在对程序编写的同时也可以对自己的知识进行巩固。
    (3)以上改写代码可能还有不足之处,请指出以改进。

  • 相关阅读:
    字节测试总监,让我们用这份《测试用例规范》,再也没加班过
    权限管理框架Shiro renren-security权限管理结构
    C Primer Plus(6) 中文版 第9章 函数 9.4 编译多源代码文件的程序
    C语言程序设计-10 指针
    抖音小店3个月做到30万的玩法,0基础也能轻松上手
    前端Vue+后端Django实现微信登录
    flowable工作流所有业务概念
    ESP8266-Arduino编程实例-GP2Y1010AU0F灰尘传感器驱动
    SpringCloudAlibaba:1.体系概述
    关于汽车维修类中译英的英语翻译
  • 原文地址:https://www.cnblogs.com/heee66/p/18057205