别的不说,先上代码:
- #include <stdio.h>
- int main()
- {
- double num1,num2;
-
- num1 = 0;
- num2 = 2; // 随便改个非零数,这里改成2,在看看运行效果就知道为什么了
-
- printf("请输入两个数\n");
- scanf("%lf %lf",&num1,&num2);
-
- if (0 == num2)
- {
- printf("您的输入不正确\n");
- return 0;
- }
- printf("%.2lf + %.2lf = %.2lf\n",num1,num2,num1+num2);
- printf("%.2lf - %.2lf = %.2lf\n",num1,num2,num1-num2);
- printf("%.2lf * %.2lf = %.2lf\n",num1,num2,num1*num2);
- printf("%.2lf / %.2lf = %lf\n",num1,num2,num1/num2);
-
- //当%运算的时候,要求两边都是整型数据。
- int yuShu =(int)num1%(int)num2;
- printf("%.0lf %% %.0lf = %d\n",num1,num2,yuShu);
- return 0;
- }
复制代码
输入: 1 m
结果如图所示:
所以说并不是歪打正着,正好输出错误提示的原因是因为num2初始化就为零。
结论:scanf("%lf",&num2);执行失败,num2的值为初始值。所以结果如上。
希望对你有帮助!
|