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\
#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,然后取其小数部分