#define _CRT_SECURE_NO_WARNINGS 1\n#include<stdio.h>\n\nint main()\n{\n\t int num1, num2, sum, diff, product, quotient;\n\n\t printf("欢迎使用ydy牌计算器(v.1.0.0-Demo)!为了使计算结果精确,请确保您输入的数据和运算结果不大于2^64-1.\n");\n\t printf("\n");\n\n\t printf("请输入第一个整数: ");\n\t scanf("%d", &num1);\n\n\t printf("请输入第二个整数: ");\n\t scanf("%d", &num2);\n\n\t printf("\n");\n\n\t sum = num1 + num2;\n\t diff = num1 - num2;\n\t product = num1 * num2;\n\n\t printf("以上两个数的和为:%d\n", sum);\n\t printf("以上两个数的差为:%d\n", diff);\n\t printf("以上两个数的积为:%d\n", product);\n\n\t // 检查除数是否为0\n\t if (num2 == 0) //在if语句中不能单个等号(=)来进行判断,这是赋值操作而不是比较操作,否则将导致条件始终为真,导致除法运算后的商始终为0.000。双等号( == ),以进行比较操作。\n\t {\n\t\t printf("除数不能为0\n");\n\t }\n\t else {\n\t\t quotient = (float)num1 / num2;\n\t\t printf("以上两个数的商为(精确到小数点后6位): %.6f\n", quotient); //本行中printf函数中的 %.6f表示输出浮点数,并且保留小数点后6位。小数点后的位数可以根据需求进行调整,但是受到浮点数类型的精度限制。在C语言中,float类型的浮点数最多可以保证6位有效数字,而double类型的浮点数最多可以保证15位有效数字。因此,小数点后的位数超过这个范围将会导致精度丢失。在实际使用中,需要根据具体情况选择合适的精度。\n\t }\n\n\t printf("\n");\n\t printf("以上是ydy牌计算器(v.1.0.0-Demo)的计算结果,如果您有任何意见或建议,欢迎发送电子邮件至邮箱1524754931@qq.com。感谢您的使用!");\n\n\t return 0;//本行可能报错: error C2143: 语法错误: 缺少“;”(在“return”的前面) 错误原因:C语言语法规定:变量要定义在当前代码块的最前面。改错见//int sum = 0;行\n\t //return 0;这一行可以不要。因为在C语言中,return 0;语句用于表示程序正常结束,返回一个整数值0,通常用于表示程序执行成功。在这段代码中,return 0;语句放在了main函数的末尾处,表示程序执行完main函数后正常退出。由于return 0;语句是在main函数的最后一行,所以在它后面的代码不会被执行,包括return 0;语句本身。因此,return 0;这一行不会有任何影响。\n}\n\n这个程序中为什么商的计算结果永远是0.000000?内容:在程序中,商的计算结果永远是0.000000是因为在计算商的时候,使用了强制类型转换将num1转换为float类型,然后进行除法运算。然而,num1和num2都是整数类型,当进行除法运算时,C语言会进行整数除法,即结果只取整数部分,舍弃小数部分。因此,无论num1和num2的值是多少,结果都会被截断成0,并且转换为float类型后仍然是0.000000。要解决这个问题,可以将num1和num2的类型都改为float类型,或者使用浮点数除法运算符(/)进行计算。

C语言简单计算器程序:实现加减乘除运算

原文地址: http://www.cveoy.top/t/topic/p49v 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录