#define\s_CRT_SECURE_NO_WARNINGS\s1\n#include<stdio.h>\n\nint\smain()\n{\n\tfloat\snum1,\snum2,\ssum,\sdiff,\sproduct,\squotient;\n\n\tprintf("欢迎使用ydy牌计算器(v.1.0.0-Demo)!为了使计算结果精确,请确保您输入的数据和运算结果不大于2^64-1.\n");\n\tprintf("\n");\n\n\tprintf("请输入第一个数:\s");\n\tscanf("%f",\s&num1);\n\n\tprintf("请输入第二个数:\s");\n\tscanf("%f",\s&num2);\n\n\tprintf("\n");\n\n\tsum\s=\snum1\s+\snum2;\n\tdiff\s=\snum1\s-\snum2;\n\tproduct\s=\snum1\s*\snum2;\n\n\tprintf("以上两个数的和为:%f\n",\ssum);\n\tprintf("以上两个数的差为:%f\n",\sdiff);\n\tprintf("以上两个数的积为:%f\n",\sproduct);\n\n\t//\s检查除数是否为0\n\tif\s(num2\s==\s0)\s//在if语句中不能单个等号(=)来进行判断,这是赋值操作而不是比较操作,否则将导致条件始终为真,导致除法运算后的商始终为0.000。双等号( == ),以进行比较操作。\n\t{\n\t\tprintf("除数不能为0\n");\n\t}\n\telse\s{\n\t\tquotient\s=\s(float)num1\s/\snum2;\n\t\tprintf("以上两个数的商为(精确到小数点后6位): %.6f\n",\squotient);\s//本行中printf函数中的 %.6f表示输出浮点数,并且保留小数点后6位。小数点后的位数可以根据需求进行调整,但是受到浮点数类型的精度限制。在C语言中,float类型的浮点数最多可以保证6位有效数字,而double类型的浮点数最多可以保证15位有效数字。因此,小数点后的位数超过这个范围将会导致精度丢失。在实际使用中,需要根据具体情况选择合适的精度。\n\t}\n\n\tprintf("\n");\n\tprintf("以上是ydy牌计算器(v.1.0.0-Demo)的计算结果,如果您有任何意见或建议,欢迎发送电子邮件至邮箱1524754931@qq.com。感谢您的使用!");\n\n\treturn\s0;//本行可能报错: error C2143: 语法错误: 缺少“;”(在“return”的前面) 错误原因:C语言语法规定:变量要定义在当前代码块的最前面。改错见//int sum = 0;行\n\t//return\s0;这一行可以不要。因为在C语言中,return 0;语句用于表示程序正常结束,返回一个整数值0,通常用于表示程序执行成功。在这段代码中,return 0;语句放在了main函数的末尾处,表示程序执行完main函数后正常退出。由于return 0;语句是在main函数的最后一行,所以在它后面的代码不会被执行,包括return 0;语句本身。因此,return 0;这一行不会有任何影响。\n}\n该程序不能保证结果精确。由于float类型的浮点数精度有限,当计算结果超过float类型的表示范围时,会导致精度丢失。为了确保结果精确,可以使用更高精度的数据类型,如double或long double。另外,可以通过检查计算结果是否超过float类型的表示范围来判断是否发生了精度丢失。

C语言简单计算器 - ydy牌计算器(v.1.0.0-Demo)

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

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