鱼C论坛

 找回密码
 立即注册
查看: 1068|回复: 9

[已解决]输出结果不正确不知道为什么以及怎么在执行中写出汉字?

[复制链接]
发表于 2020-5-15 15:58:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Harrylby 于 2020-5-15 16:09 编辑

题目如下:(题目所给条件与事实不符,只为练习)。
当每月工资S低于或等于3000元,征税5%当每月工资高于3000元,低于5000元(3000<=S<5000),征税10%
当每月工资高于5000元,低于10000元(5000=<S<10000),征税15%
当每月工资高于10000元,征税20%
  1. #include <stdio.h>
  2. int main()
  3. {
  4. float s, m1,m2,m3,m4;
  5. m1=s*0.5;
  6. m2=s*0.15;
  7. m3=s*0.1;
  8. m4=s*0.01;
  9. scanf("%f",&s);
  10. printf("缴纳税金:");
  11. if(s>=10000)
  12. printf("%4.2f\n",m1);
  13. else
  14. if(s>=5000&&s<10000)
  15. printf("%4.2f\n",m2);
  16. else
  17. if(s>=3000&&s<5000)
  18. printf("%4.2f\n",m3);
  19. else
  20. printf("%4.2f\n",m4);
  21. return 0;
  22. }
复制代码
我编完后,发现输出的结果如下
6000
缴纳税金:4199248-16106126.00
Press any key to continue

这是为什么呢,是逻辑出问题了吗?


另外如果想在执行时出现“月工资:”字样,然后再输入月工资数,应该怎么办呢?
效果即
月工资:  6000    //然后输入6000
缴纳税金:4199248-16106126.00    //然后得出结论
Press any key to continue
  1. scanf("'月工资:'%f",&s);
  2. printf("缴纳税金:%d");
复制代码
这样写还是不行
感谢大佬解答!!
最佳答案
2020-5-15 22:14:34
Harrylby 发表于 2020-5-15 21:33
噢,太感谢了,那能再请问一下,为什么输出会是这样吗?
月工资: 5000
缴纳税金:-16106126

哎哟,我去。。。。
你的这缴纳税金与输入的值没有任何关系啊。。。。
你是先计算的税金,然后输入的s值。
计算税金的时候,s没有初始化,所以 s 值是不确定的。
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     float s, m1,m2,m3,m4;
  5.     scanf("%f",&s);//应该先输入s值,再进行计算!
  6.     m1=s*0.5;
  7.     m2=s*0.15;
  8.     m3=s*0.1;
  9.     m4=s*0.01;
  10.     printf("缴纳税金:");
  11.     if(s>=10000)
  12.         printf("%4.2f\n",m1);
  13.     else if(s>=5000&&s<10000)
  14.             printf("%4.2f\n",m2);
  15.         else if(s>=3000&&s<5000)
  16.                 printf("%4.2f\n",m3);
  17.             else
  18.                 printf("%4.2f\n",m4);
  19.     return 0;
  20. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-15 16:17:07 | 显示全部楼层

哈哈

本帖最后由 焦健鬼 于 2020-5-15 16:20 编辑

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-15 17:00:04 | 显示全部楼层

疑惑的打出很多问号
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 17:21:39 | 显示全部楼层
Harrylby 发表于 2020-5-15 17:00
疑惑的打出很多问号

嘻嘻
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 17:31:58 | 显示全部楼层
printf("月工资: ");
scanf("%f",&s);
printf("\n");
printf("缴纳税金:%d");
另外你把m的那些变量初始化0.0试一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 17:50:56 | 显示全部楼层
你是不是把 C 语言和 python 搞混了? python 中的输入函数 input 可以给出提示语。
而 C语言的输入函数 scanf 括号内只能由格式化操作符和变量地址,不能有其他内容作为提示语,提示语需要在 scanf 之前用 printf 给出。
  1. printf("月工资: ");
  2. scanf("%f",&s);
  3. printf("缴纳税金:%d");
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 20:56:50 | 显示全部楼层
sunrise085 发表于 2020-5-15 17:50
你是不是把 C 语言和 python 搞混了? python 中的输入函数 input 可以给出提示语。
而 C语言的输入函数 s ...

我的确把 C 语言和 python 搞混了,我居然点进来了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-15 21:33:59 | 显示全部楼层
sunrise085 发表于 2020-5-15 17:50
你是不是把 C 语言和 python 搞混了? python 中的输入函数 input 可以给出提示语。
而 C语言的输入函数 s ...

噢,太感谢了,那能再请问一下,为什么输出会是这样吗?
月工资: 5000
缴纳税金:-16106126
Press any key to continue
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 22:14:34 | 显示全部楼层    本楼为最佳答案   
Harrylby 发表于 2020-5-15 21:33
噢,太感谢了,那能再请问一下,为什么输出会是这样吗?
月工资: 5000
缴纳税金:-16106126

哎哟,我去。。。。
你的这缴纳税金与输入的值没有任何关系啊。。。。
你是先计算的税金,然后输入的s值。
计算税金的时候,s没有初始化,所以 s 值是不确定的。
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     float s, m1,m2,m3,m4;
  5.     scanf("%f",&s);//应该先输入s值,再进行计算!
  6.     m1=s*0.5;
  7.     m2=s*0.15;
  8.     m3=s*0.1;
  9.     m4=s*0.01;
  10.     printf("缴纳税金:");
  11.     if(s>=10000)
  12.         printf("%4.2f\n",m1);
  13.     else if(s>=5000&&s<10000)
  14.             printf("%4.2f\n",m2);
  15.         else if(s>=3000&&s<5000)
  16.                 printf("%4.2f\n",m3);
  17.             else
  18.                 printf("%4.2f\n",m4);
  19.     return 0;
  20. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-15 22:41:51 | 显示全部楼层
诡秘之旅 发表于 2020-5-15 17:31
printf("月工资: ");
scanf("%f",&s);
printf("\n");

非常感谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-12 14:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表