c语言四则运算小程序
- 本文源程序代码来源于csdn一位博主:

文章链接:http://t.csdnimg.cn/L29fs
原程序简洁凝练,以简短的代码写出了一个加法运算器。 - 以下是运行结果(本文全程用visual studio 2022进行代码的编写与运算):

- 通过对该代码的运算,我个人认为有以下问题:
(1)尽管该代码简洁明了,但只有加法运算,缺少减、乘、除的运算。
(2)算法集中于主函数,未在外设立单独的函数。
(3)没有相应的提升语句,使用者可能不清楚如何使用。
针对以上问题,我对代码进行了改进,加入了减、乘、除三则运算,加入了提升语句,在主函数外编写加减乘除的四则运算函数。 - 以下是修改后的代码:
点击查看代码
#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)以上改写代码可能还有不足之处,请指出以改进。
c语言四则运算小程序的更多相关文章
- 300道随机四则运算小程序(java编写)
这是由Java编写的300道随机四则运算小程序, 运算数范围为0~100(不包括100),运算结果保留两位小数. 程序代码: import java.util.*; class Yunsuan{ pu ...
- 任务04——对四则运算小程序的进一步改进,并学习 Git 中 Branch 的用法
https://github.com/jinxiaohang/Operation/tree/test01 对于任务2的代码进行优化修改感觉很麻烦,所以直接选择重写代码完成任务四, 任务四很早就发布了, ...
- 任务02——安装 Intellj IDEA,编写一个简易四则运算小程序,并将代码提交到 GitHub
github地址:https://github.com/ErhuoHome/First.git 安装jdk与intellij idea没有太大问题,以前安装过eclipse 在程序方面,由于对真分数的 ...
- c语言经典小程序
1:题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. mai ...
- 四则运算小程序测试--c++--软件工程课
一.测试内容: 1.生成题目数是否准确?2.打印方式(列数l.行间距jj)是否准确?3.有无乘除法cc是否准确?4.数的范围fw是否准确?5.除法有无余数c是否准确?6.加减有无负数f是否准确? 二. ...
- 微信小程序常见问题集合(长期更新)
最新更新: 新手跳坑系列:推荐阅读:<二十四>request:fail错误(含https解决方案)(真机预览问题 跳坑指南<七十>如何让微信小程序服务类目审核通过 跳坑六十九: ...
- 微信小程序之菜鸟选手入门教学(一)
1. 小程序的优缺点优点:不需下载.卸载 使用方便缺点:嵌套在微信中,属于微信的子应用2. 使用的技术实际上是Hybrid技术的应用Hybrid App (混合模式移动应用),使用网页语言和程序语言共 ...
- 【微信小程序项目实践总结】30分钟从陌生到熟悉
前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05-日历组件的实现 4. 微信小程序开发04-打造自 ...
- 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理
[微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...
- 微信小程序学习指南
作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
随机推荐
- 【JS 逆向百例】如何跟栈调试?某 e 网通 AES 加密分析
关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途 ...
- 使用Navicat 进行MySql数据库同步功能
使用Navicat 进行MySql数据库同步功能 作者:胡德安 准备: 打开Navicat管理工具(比如Navicat Premium 15管理工具) 两个数据库第一个是源数据库A和要被同步的目标数据 ...
- Python笔记四之协程
本文首发于公众号:Hunter后端 原文链接:Python笔记四之协程 协程是一种运行在单线程下的并发编程模型,它的特点是能够在一个线程内实现多个任务的并发操作,通过在执行任务时主动让出执行权,让其他 ...
- 语言模型的预训练[6]:思维链(Chain-of-thought,CoT)定义原理详解、Zero-shot CoT、Few-shot CoT 以及在LLM上应用
大语言模型的预训练[6]:思维链(Chain-of-thought,CoT)定义原理详解.Zero-shot CoT.Few-shot CoT 以及在LLM上应用 1.思维链定义 背景 在 2017- ...
- 基于知识图谱的《红楼梦》人物关系可视化及问答系统(含码源):命名实体识别、关系识别、LTP简单教学
基于知识图谱的<红楼梦>人物关系可视化及问答系统(含码源):命名实体识别.关系识别.LTP简单教学 文件树: app.py是整个系统的主入口 templates文件夹是HTML的页面 |- ...
- 百度飞桨:ERNIE 3.0 、通用信息抽取 UIE、paddleNLP的安装使用[一]
相关文章: 基础知识介绍: [一]ERNIE:飞桨开源开发套件,入门学习,看看行业顶尖持续学习语义理解框架,如何取得世界多个实战的SOTA效果?_汀.的博客-CSDN博客_ernie模型 百度飞桨: ...
- C/C++ 简易异或加密的分析
异或,加解密shellcode代码的简单分析方法. #include <stdio.h> #include <Windows.h> unsigned char buf[] = ...
- CE修改器入门:查找共享代码
本关我们将学习共享代码,在C语言中角色属性都是以结构体的方式进行存储的,而结构体所存储的信息都是连续性的,这一关我们将会解释如何处理游戏中的共用代码,这种代码是通用在除了自己以外的其他同类型对像上的 ...
- 从嘉手札<2023-11-01>
最近心态不好,如同此刻的天气,浓雾扰扰,看不见前途未来,也想不起过去. 一则是研究没有进展,二则是感情纷扰,其实再多的纷扰也都不过是自己内心的那层桎梏,可人不能总能保持理性的: 就像很多快乐的事情是简 ...
- ASP.NET Core 配置 - 创建自定义配置提供程序
ASP.NET Core 配置 - 创建自定义配置提供程序 在本文中,我们将创建一个自定义配置提供程序,从数据库读取我们的配置.我们已经了解了默认配置提供程序的工作方式,现在我们将实现我们自己的自定义 ...