llf123456 发表于 2020-11-2 20:22:33

请求帮助

假设个人所得税为:税率×(工资−1600)。请编写程序计算应缴的所得税,其中税率定义为:

当工资不超过1600时,税率为0;
当工资在区间(1600, 2500]时,税率为5%;
当工资在区间(2500, 3500]时,税率为10%;
当工资在区间(3500, 4500]时,税率为15%;
当工资超过4500时,税率为20%。
输入格式:
输入在一行中给出非负工资。

输出格式:
在一行输出个人所得税,精确到小数点后2位。

输入样例1:
1600
输出样例1:
0.00
输入样例2:
1601
输出样例2:
0.05
输入样例3:
3000
输出样例3:
140.00
输入样例4:
4000
输出样例4:
360.00
输入样例5:
5000
输出样例5:
680.00
#include <stdio.h>
int main()
{   
    int a;
    double v,p;
    scanf("%d",&p);
    if(a <= 1600)v = 0.00;
    if(a > 1600 && a < 2500)v = 0.05;
    if(a > 2500 && a <= 3500)v = 0.10;
    if(a > 3500 && a <= 4500)v = 0.15;
    if(a > 4500)v = 0.20;
    p = v*(a - 1600);
    printf("%.2f",p);
    return 0;
}//怎么错了

秃头的臭弟弟 发表于 2020-11-2 20:32:21

这题你看看他给的样例里面,5000是不是应该是580,不出意外是测试组出现问题了

风过无痕1989 发表于 2020-11-2 20:52:28

本帖最后由 风过无痕1989 于 2020-11-2 20:54 编辑

你哪个变量是干什么的都没搞清楚


#include <stdio.h>
int main()
{
        int a;                           // a 领到的工资
        double v, p;
        scanf("%d", &a);          // 需要输入的是工资
        if (a <= 1600)
                v = 0.00;
        if (a > 1600 && a < 2500)
                v = 0.05;
        if (a > 2500 && a <= 3500)
                v = 0.10;
        if (a > 3500 && a <= 4500)
                v = 0.15;
        if (a > 4500)
                v = 0.20;
        p = v * (a - 1600);       // p 是需要交的税费
        printf("%.2f", p);
        return 0;
}

llf123456 发表于 2020-11-2 22:54:26

风过无痕1989 发表于 2020-11-2 20:52
你哪个变量是干什么的都没搞清楚

您的代码也没有通过PTA
a.c: In function ‘main’:
a.c:6:9: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &a);
         ^~~~~~~~~~~~~~~

风过无痕1989 发表于 2020-11-2 23:01:17

llf123456 发表于 2020-11-2 22:54
您的代码也没有通过PTA
a.c: In function ‘main’:
a.c:6:9: warning: ignoring return value of ‘sc ...

PTAj什么东东?

风过无痕1989 发表于 2020-11-2 23:13:05

llf123456 发表于 2020-11-2 22:54
您的代码也没有通过PTA
a.c: In function ‘main’:
a.c:6:9: warning: ignoring return value of ‘sc ...

知道了,就是那种神精病的考试用机,考职称时领教过。

上面的程序是没有问题的,我在VS2015上通过的。我再到网上查一查,看怎么样才能通过

风过无痕1989 发表于 2020-11-2 23:24:36

llf123456 发表于 2020-11-2 22:54
您的代码也没有通过PTA
a.c: In function ‘main’:
a.c:6:9: warning: ignoring return value of ‘sc ...


#include <stdio.h>
int main()
{
      int a;                  // a 领到的工资
      double v, p;
      if( scanf("%d", &a) !=EOF)// 需要输入的是工资
      {                         // 这就是神精病的做法,一定要判断 scanf() 的返回值   
      }
      if (a <= 1600)
                v = 0.00;
      if (a > 1600 && a < 2500)
                v = 0.05;
      if (a > 2500 && a <= 3500)
                v = 0.10;
      if (a > 3500 && a <= 4500)
                v = 0.15;
      if (a > 4500)
                v = 0.20;
      p = v * (a - 1600);       // p 是需要交的税费
      printf("%.2f", p);
      return 0;
}

乐乐学编程 发表于 2020-11-2 23:33:42

风过无痕1989 发表于 2020-11-2 23:24


这确实是够神精的
页: [1]
查看完整版本: 请求帮助