鱼C论坛

 找回密码
 立即注册
查看: 3073|回复: 5

关于设计一个税收系统的问题

[复制链接]
发表于 2018-1-9 17:52:44 | 显示全部楼层 |阅读模式

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

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

x
  1. # include <stdio.h>
  2. double salary, shui = 0, F = 0, P = 0;   //初始化变量
  3. char Start()          //用于美化界面
  4. {
  5.         printf("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
  6.         printf("----------------    积极缴税,热爱祖国    ----------------\n\n");
  7.         return 0;
  8. }
  9. char Start2()          //用于美化界面
  10. {
  11.         printf("----------------   感谢您为祖国所做的贡献 ----------------\n");
  12.         printf("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n\n");
  13.         return 0;
  14. }
  15. int SF()                      //定义一个身份信息输入栏
  16. {
  17.         char a;
  18.         int b[18];
  19.         printf("--------------        请输入你的姓名         -------------\n");
  20.         scanf("%s", &a);
  21.         //printf("尊敬的%s用户您好!\n", a);
  22.         printf("--------------      请输入你的身份证号码     -------------\n");
  23.         scanf("%ld", &b);
  24.         return 0;
  25. }
  26. double JS()                       //定义一个用于计算的子函数
  27. {
  28.         printf("请用户输入本月总收入:¥ ");
  29.         scanf("%lf", &salary);
  30.         P = salary;                   //用一个P来保存用户输入的总收入的值
  31.         if (salary > 83500)
  32.         {
  33.                 shui += (salary - 83500) * 0.45;
  34.                 salary = 83500;
  35.         }
  36.         if (salary > 58500)
  37.         {
  38.                 shui += (salary - 58500) * 0.35;
  39.                 salary = 58500;
  40.         }
  41.         if (salary > 38500)
  42.         {
  43.                 shui += (salary - 38500) * 0.30;
  44.                 salary = 38500;
  45.         }
  46.         if (salary > 12500)
  47.         {
  48.                 shui += (salary - 12500) * 0.25;
  49.                 salary = 12500;
  50.         }
  51.         if (salary > 8000)
  52.         {
  53.                 shui += (salary - 8000) * 0.20;
  54.                 salary = 8000;
  55.         }
  56.         if (salary > 5000)
  57.         {
  58.                 shui += (salary - 5000) * 0.10;
  59.                 salary = 5000;
  60.         }
  61.         if (salary > 3500)
  62.         {
  63.                 shui += (salary - 3500) * 0.03;
  64.                 salary = 3500;
  65.         }
  66.                 if (salary > 0)
  67.         {
  68.                 shui += 0;
  69.        
  70.         }
  71.         printf("\n");
  72.         printf("用户本月应缴税为¥%.4lf\n\n", shui);
  73.         F = P - shui;                 //此处为:实际收入 = 总收入 - 总税收
  74.         printf("用户本月实际所得为¥%.4lf\n\n", F);
  75.         getchar();
  76.         return shui;
  77. }


  78. int main()
  79. {       
  80.         char q;
  81.         do{
  82.                 Start();
  83.                 SF();
  84.                 printf("\n");
  85.                 JS();
  86.                 Start2();
  87.                 printf("请输入Y继续程序,或输入其他退出程序\n");
  88.                 scanf("%c", &q);
  89.         }while(q == 'Y');
  90.         printf("程序退出,谢谢使用\n");
  91.         return 0;
  92. }
复制代码


首先,感谢陌生的大佬您点进我的问题~
然后我的问题是:
1.这个程序为什么不能循环...
2.把循环语句do while去掉后,可以得出答案,但是系统会提示出现错误!
先谢谢各位了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-9 17:57:20 From FishC Mobile | 显示全部楼层
20行s改为c
23行改为循环输入
数组的赋值不能这样操作
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-9 22:07:52 | 显示全部楼层
BngThea 发表于 2018-1-9 17:57
20行s改为c
23行改为循环输入
数组的赋值不能这样操作

大佬晚上好
看完大佬的回复,我这里有个疑问:
原代码中20行的 s 我是想用来输入字符串(即名字)的...
虽然说是输入,但不做调用。
然后23行的循环输入我改成下面这样...结果很惨痛
  1.         while(1)
  2.         {
  3.                 char a;
  4.                 int b;
  5.                 printf("--------------        请输入你的姓名         -------------\n");
  6.                 scanf("%s", &a);
  7.                 //printf("尊敬的%s用户您好!\n", a);
  8.                 printf("--------------      请输入你的身份证号码     -------------\n");
  9.                 scanf("%d", &b);
  10.         }
复制代码

然后再次感谢大佬这几天对我的帮助。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-9 22:11:29 | 显示全部楼层
Ln_E 发表于 2018-1-9 22:07
大佬晚上好
看完大佬的回复,我这里有个疑问:
原代码中20行的 s 我是想用来输入字符串(即 ...

就是我把 s 改成 c 的时候,
直接就输出后面的值了。
(即是后面的 【身份证号信息】 输入直接跳过去了,然后 【税费】 及【实际收入】全以 0 输出)...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-9 22:22:14 From FishC Mobile | 显示全部楼层
Ln_E 发表于 2018-1-9 22:11
就是我把 s 改成 c 的时候,
直接就输出后面的值了。
(即是后面的 【身份证号信息】 输入直接跳过去了 ...

如果a是字符串,那你定义的时候就要用指针
char *a
后面循环输入的意思是你要根据数组长度来依次输入

最重要的,每次输入完成后你要清空输入流的信息,方式请自行百度
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-9 23:02:02 | 显示全部楼层
  1. int SF()                      //定义一个身份信息输入栏
  2. {
  3.         char a[10];               // 注意:C 中一个 【汉字】 相当于两个 【字符】
  4.                                                           // 此处把【原错误定义char a】改为【char a[10]】目的在于向计算机申请 字符串 空间。
  5.         int b;
  6.         printf("--------------        请输入你的姓名         -------------\n");
  7.         scanf("%s", &a);
  8.         //printf("尊敬的%s用户您好!\n", a);
  9.         printf("--------------      请输入你的身份证号码     -------------\n");
  10.         scanf("%d", &b);
  11.         return 0;       
  12. }
复制代码

大佬,刚刚我舍友跟我说了一声让我按上面的改了,运行貌似没问题了。
然后就是再次谢谢前辈,关于 数组赋值 的问题我会去好好弄懂的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 21:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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