鱼C论坛

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

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

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

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

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

x
# include <stdio.h>
double salary, shui = 0, F = 0, P = 0;   //初始化变量
char Start()          //用于美化界面
{
        printf("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
        printf("----------------    积极缴税,热爱祖国    ----------------\n\n");
        return 0;
}
char Start2()          //用于美化界面
{
        printf("----------------   感谢您为祖国所做的贡献 ----------------\n");
        printf("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n\n");
        return 0;
}
int SF()                      //定义一个身份信息输入栏
{
        char a;
        int b[18];
        printf("--------------        请输入你的姓名         -------------\n");
        scanf("%s", &a);
        //printf("尊敬的%s用户您好!\n", a);
        printf("--------------      请输入你的身份证号码     -------------\n");
        scanf("%ld", &b);
        return 0;
}
double JS()                       //定义一个用于计算的子函数
{
        printf("请用户输入本月总收入:¥ ");
        scanf("%lf", &salary);
        P = salary;                   //用一个P来保存用户输入的总收入的值
        if (salary > 83500)
        {
                shui += (salary - 83500) * 0.45;
                salary = 83500;
        }
        if (salary > 58500)
        {
                shui += (salary - 58500) * 0.35;
                salary = 58500;
        }
        if (salary > 38500)
        {
                shui += (salary - 38500) * 0.30;
                salary = 38500;
        }
        if (salary > 12500)
        {
                shui += (salary - 12500) * 0.25;
                salary = 12500;
        }
        if (salary > 8000)
        {
                shui += (salary - 8000) * 0.20;
                salary = 8000;
        }
        if (salary > 5000)
        {
                shui += (salary - 5000) * 0.10;
                salary = 5000;
        }
        if (salary > 3500)
        {
                shui += (salary - 3500) * 0.03;
                salary = 3500;
        }
                if (salary > 0)
        {
                shui += 0;
        
        }
        printf("\n");
        printf("用户本月应缴税为¥%.4lf\n\n", shui);
        F = P - shui;                 //此处为:实际收入 = 总收入 - 总税收
        printf("用户本月实际所得为¥%.4lf\n\n", F);
        getchar();
        return shui;
}


int main()
{        
        char q;
        do{
                Start();
                SF();
                printf("\n");
                JS();
                Start2();
                printf("请输入Y继续程序,或输入其他退出程序\n");
                scanf("%c", &q);
        }while(q == 'Y');
        printf("程序退出,谢谢使用\n");
        return 0;
}

首先,感谢陌生的大佬您点进我的问题~
然后我的问题是:
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行的循环输入我改成下面这样...结果很惨痛
        while(1)
        {
                char a;
                int b;
                printf("--------------        请输入你的姓名         -------------\n");
                scanf("%s", &a);
                //printf("尊敬的%s用户您好!\n", a);
                printf("--------------      请输入你的身份证号码     -------------\n");
                scanf("%d", &b);
        }
然后再次感谢大佬这几天对我的帮助。
想知道小甲鱼最近在做啥?请访问 -> 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 | 显示全部楼层
int SF()                      //定义一个身份信息输入栏
{
        char a[10];               // 注意:C 中一个 【汉字】 相当于两个 【字符】
                                                          // 此处把【原错误定义char a】改为【char a[10]】目的在于向计算机申请 字符串 空间。
        int b;
        printf("--------------        请输入你的姓名         -------------\n");
        scanf("%s", &a);
        //printf("尊敬的%s用户您好!\n", a);
        printf("--------------      请输入你的身份证号码     -------------\n");
        scanf("%d", &b);
        return 0;        
}
大佬,刚刚我舍友跟我说了一声让我按上面的改了,运行貌似没问题了。
然后就是再次谢谢前辈,关于 数组赋值 的问题我会去好好弄懂的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-1 07:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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