c语言四则运算小程序

  1. 本文源程序代码来源于csdn一位博主:
    文章链接:http://t.csdnimg.cn/L29fs
    原程序简洁凝练,以简短的代码写出了一个加法运算器。
  2. 以下是运行结果(本文全程用visual studio 2022进行代码的编写与运算):
  3. 通过对该代码的运算,我个人认为有以下问题:
    (1)尽管该代码简洁明了,但只有加法运算,缺少减、乘、除的运算。
    (2)算法集中于主函数,未在外设立单独的函数。
    (3)没有相应的提升语句,使用者可能不清楚如何使用。
    针对以上问题,我对代码进行了改进,加入了减、乘、除三则运算,加入了提升语句,在主函数外编写加减乘除的四则运算函数。
  4. 以下是修改后的代码:

点击查看代码

#include <stdio.h>

// 加法函数
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)以上改写代码可能还有不足之处,请指出以改进。