C语言关于一个简单的计算器中的%运算有些不明白 请明白人帮忙解答下

来源:百度知道 编辑:UC知道 时间:2024/06/17 17:14:55
(1)这是计算器的原程序
#include <stdio.h>

void main()
{
double number1 = 0;
double number2 = 0;
char operation = 0;

printf("\nEnter the calculation:");
scanf("%lf %c %lf",&number1,&operation,&number2);

switch(operation)
{
case '+':
printf("=%.2lf",number1 + number2);
break;

case '-':
printf("=%.2lf",number1 - number2);
break;

case '*':
printf("=%.2lf",number1 * number2);
break;

case '/':
if(number2 == 0)
printf("\n\aDivision by zero error!");
else
printf("=%.2lf",number1 / number2);
break;

case '%':
if((long)number2 == 0)
printf("\n\

C和C++的%只支持整数操作

从浮点数到整数的转换必须手动进行,系统不会自动进行。

如果你不写(long)的话,编译会出错的

因为求余运算要求必须是整数 如果不是0的话就没法求余了 比如3.4%1.66是多少谁都不知道嘛。。。

而且是转换以后必须不为0

因为求余数的操作,除数必须是整数.这是数学知识,和编程没关系.

1 求模运算a%b中b的值不能为小数
2 作为a/b中b的值不能为0

求模运算就是先将number1 / number2,然后取其小数部分