首页 > 编程语言 >c语言四则运算小程序

c语言四则运算小程序

时间:2024-03-06 18:01:43浏览次数:24  
标签:return 语言 int 代码 四则运算 程序 运算符 second printf

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

标签:return,语言,int,代码,四则运算,程序,运算符,second,printf
From: https://www.cnblogs.com/heee66/p/18057205

相关文章

  • C语言常用工具函数
    整数/*atf/include/lib/utils_def.h*//**Thisvariantofdiv_round_upcanbeusedinmacrodefinitionbutshouldnot*beusedinCcodeasthe`div`parameterisevaluatedtwice.*/#defineDIV_ROUND_UP_2EVAL(n,d) (((n)+(d)-1)/(d))#definedi......
  • Golang(Go语言)字符串转时间格式封装以及填坑
    先看代码:packagemainimport( "fmt" "time")funcmain(){ timeStr:="2021-05-2100:00:00" utcTime,_:=time.Parse(time.DateTime,timeStr) fmt.Println(utcTime)fmt.Println(utcTime.Local())}执行结果:从这里可以看出,字符串转换为时......
  • (面试题1)看程序写结果(先判断有没有问题,如果没有,写出结果)
    面试题:1:看程序写结果(先判断有没有问题,如果没有,写出结果)packagecom.shujia.面试题;classFu{publicvoidshow(){System.out.println("fushow");}}classZiextendsFu{publicvoidshow(){System.out.println("zishow"......
  • (面试题2)看程序写结果(先判断有没有问题,如果没有,写出结果)
    2:看程序写结果(先判断有没有问题,如果没有,写出结果)packagecom.shujia.面试题;/*2:看程序写结果(先判断有没有问题,如果没有,写出结果)*/classA{publicvoidshow(){show2();}publicvoidshow2(){System.out.println("我");......
  • 微信小程序-----微信小程序选择本地图片显示并预览(实现左右滑动)
    一、选择图片并显示1、创建页面这里我直接将我的页面信息展示出来给大家看。附上我的代码就是一个简单的页面的代码其中还隐藏了要显示的image,因为没有值,所以还看不到。wxml页面代码<viewclass="display_img"><blockwx:for="{{lista}}"><viewclass="img_size_box"><ima......
  • 基于c语言的扫雷系统的二次开发
    原代码扫雷基本流程一、基本思路首先创建二维数组,来表示地图每一个格子要表示的信息:未翻开状态(草地)和已翻开状态(数字)该格子是地雷或者不是地雷(1表示是地雷,0表示不是地雷)使用两个二维数组来表示以上两组状态:第一组二维数组:charshowMap[9][9];表示每个格子的翻开和未翻开状......
  • 基于C语言中国象棋项目的二次开发
    这是一个由C语言所编写的中国象棋项目,以下给出原项目的链接、代码、运行截图。原项目链接:https://blog.csdn.net/weixin_45590872/article/details/109308798原C语言代码如下:点击查看代码#include<stdio.h>#include<conio.h>#include<string.h>#include<stdlib.h>#includ......
  • C语言-猜拳游戏二次开发
    引言当探究猜拳游戏的魅力时,人们往往会陶醉于其古老的历史和简单的规则之中。作为一种源远流长的竞技娱乐活动,猜拳游戏早已深入人们的生活,成为一种普遍且愉快的社交互动方式。然而,这看似简单的游戏背后却蕴含了深刻的智慧。在短暂的选择过程中,参与者不仅在思考自己的选择,更需要推......
  • 微信小程序--生命周期
    目录1、什么是生命周期2、分类小程序应用的生命周期页面的生命周期组件的生命周期3、三种生命周期的详解4、页面与组件4.1条件渲染4.2父子组件的影响   1、概念生命周期:生命周期(LifeCycle)是指一个对象从创建->运行->销毁的整个阶段,强调的是一个时间段。......
  • 爬虫程序的实现
    0.学习爬虫的入门看的第一个视频就是手把手的讲解怎么写爬虫程序,对小白非常的友好,强烈推荐。(写新的程序就是照葫芦画瓢)【Python+爬虫】爆肝两个月!拜托三连了!这绝对是全B站最用心(没有之一)的Python+爬虫公开课程,从入门到(不)入狱!_哔哩哔哩_bilibili1.插件所有的爬虫程序都要用到......