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