欧阳萧风


私信TA

用户名:15738710170

访问量:7009

签 名:

用绝对清醒的理智压制不该有的情绪

等  级
排  名 6290
经  验 1373
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 安阳学院
专  业 计算机科学与技术

  自我简介:

解题思路:

本题总共有6种情况,分别是:


1. 利润低于或等于100000元时


       即i<=100000


2. 利润高于100000元,低于或等于200000元时


       即100000<i≤200000


3. 利润高于200000元,低于或等于400000元时


       即200000<i≤400000


4. 利润高于400000元,低于或等于600000元时


       即400000<i≤600000


5. 利润高于600000元,低于或等于1000000元时


       即600000<i≤1000000


6. 利润高于1000000元时


       即i>1000000



注意事项:

分清情况,注意代码的整洁性,还有就是公式别用错。因为这个题解运用了定义整型常量的方法,所以省去了冗杂的0的书写,使代码变得整洁、简便地同时,缩短了代码的编译时间。


参考代码:

#include "stdio.h"
int main()
{
	int i,r;
	const int B=100000;
	scanf("%d",&i);
	if(i<=B)//利润低于或等于100000元时
	{
		r=i*0.1;
	}
		else if(i>B && i<=(2*B))     //利润高于100000元,低于或等于200000元时
		{
			r=0.1*B+(i-B)*0.075;
		}
			else if(i>(2*B) && i<=(4*B))     //利润高于200000元,低于或等于400000元时
			{
				r=0.1*B+0.075*B+(i-2*B)*0.05;
			}
				else if(i>(4*B) && i<=(6*B))     //利润高于400000元,低于或等于600000元时
				{
					r=0.1*B+0.075*B+0.05*2*B+(i-4*B)*0.03;
				}
					else if(i>(6*B) && i<=(10*B))     //利润高于600000元,低于或等于1000000元时
					{
						r=0.1*B+0.075*B+0.05*2*B+0.03*2*B+(i-6*B)*0.015;
					}
						else if(i>(10*B))     //利润高于1000000元时
						{
							r=0.1*B+0.075*B+0.05*2*B+0.03*2*B+4*B*0.015+((i-10*B)*0.01);
						}
						printf("%d",r);
	return 0;
}


 

0.0分

56 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答

代码解释器

  评论区

还不是一样都又臭又长
#include<stdio.h>
int main()
{
	int a, b;
	scanf("%d", &a);
	switch (a / 100000)
	{
	case 0:
		b = a * 0.1;
		break;
	case 1:
		b = 10000 + (a-100000) * 0.075;
		break;
	case 2:
	case 3:
		b = 17500 + (a-200000) * 0.05;
		break;
	case 4:
	case 5:
		b = 27500 + (a - 400000) * 0.03;
		break;
	case 6:
	case 7:
	case 8:
	case 9:
		b = 33500 + (a - 600000) * 0.015;
		break;
	default:
		b = 39500 + (a - 1000000) * 0.01;
	}
	printf("%d", b);
	return 0;
}
2024-02-12 21:00:22
#include<stdio.h>
int main()
{
	int I,a,b,c,d,e,f,X=100000,x,y;
	scanf("%d",&I);
#define	F(x)((x)>X ? X:(x))
	a=F(I); b=F(I-X);
#define G(x)((x)>2*X ? 2*X:(x))
    c=G(I-2*X); d=G(I-4*X);
    e=(I-6*X>4*X) ? 4*X:I-6*X;
    f=I-10*X;
#define H(x)((x)>=0 ? (x):0)
    a=H(a);b=H(b);c=H(c);
    d=H(d);e=H(e);f=H(f);
    y=a*0.1f+b*0.075f+c*0.05f+d*0.03f+e*0.015f+f*0.01f;
    printf("%d",y);
    return 0;
}
2023-11-23 23:29:16
中间计算结果不用double,不会有误差吗?
2023-10-21 22:17:56
第一次解出来题,开心。但是不知道为什么只有70分
    #include<stdio.h>
    int main()
    {   int x,y=0;
        scanf("%d",&x);
        int p[]={10000,17500,27500,33500,39500};
        if (x>1000000)
           y=(x-1000000)*0.01+p[4];
         else if (x>600000&&x<=1000000)
        y=(x-600000)*0.015+p[3];
          else if (x>400000&&x<=600000)
           y=(x-400000)*0.03+p[2];
         else if (x>200000&&x<=400000)
           y=(x-200000)*0.05+p[1];
          else if (x>100000&&x<=200000)
           y=(x-100000)*0.075+p[0];
         else if (x<100000&&x>0)
           y=x*0.01;
    printf("%d\n",y);
    return 0;
2023-08-23 15:57:48
1
2023-05-01 17:03:29
#include<stdio.h>
int main()
{
	int a,b,c,d,e;
	a=100000;
	b=200000;
	c=400000;
	d=600000;
	e=1000000;
	int n,profit;
	scanf("%d",&n);
	int grade;
	//找出所在的区间 
	if(n>e)
	{
		profit=a/10+(b-a)/1000*75+(c-b)/20+(d-c)/100*3+(e-d)*15/1000+(n-e)/100;
		goto tiaochu;
	}
		if(n>d)
	{
		profit=a/10+(b-a)/1000*75+(c-b)/20+(d-c)/100*3+(n-d)/1000*15;
		goto tiaochu;
	}
		if(n>c)
	{
		profit=a/10+(b-a)/1000*75+(c-b)/20+(n-c)/100*3;
		goto tiaochu;
	}
		if(n>b)
	{
		profit=a/10+(b-a)/1000*75+(n-b)/20;
		goto tiaochu;
	}
		if(n>a)
	{
		profit=a/10+(n-a)*75/1000;
		goto tiaochu;
	}
		if(n<=a)
	{
		profit=n/10
2023-04-25 19:02:19
不是错在多个0,就是少个0上,真服了
#include<stdio.h>
int main()
{
	int lr;
	scanf("%d",&lr);
	int tmp=lr;
	if(tmp<=100000)
	tmp*=0.1;
	else if(tmp>100000 && tmp<=200000)
	tmp=0.1*100000+(tmp-100000)*0.075;
	else if(tmp>200000 && tmp<=400000)
	tmp=0.1*100000+0.075*100000+(tmp-200000)*0.05;
	else if(tmp>400000 && tmp<=600000)
	tmp=0.1*100000+0.075*100000+0.05*200000+(tmp-400000)*0.03; 
	else if(tmp>1000000)
	tmp=0.1*100000+0.075*100000+0.05*200000+0.03*200000+0.015*400000+(tmp-1000000)*0.01;
	else
		tmp=0.1*100000+0.075*100000+0.05*200000+0.03*200000+(tmp-600000)*0.015;
	printf("%d",tmp);
	return 0;
}
2023-02-27 10:04:15
#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    switch(a/100000)
    {
        case 0:
        case 1:
        printf("%d",a=a*0.1);break;
        case 2:
        printf("%d",a=a*0.175);break;
        case 3:
        case 4:
        printf("%d",a=a*0.175+200000*0.05);break;
        case 5:
        case 6:
        printf("%d",a=a*0.175+200000*0.08);break;
        case 7:
        case 8:
        case 9:
        case 10:
        printf("%d",a=a*0.175+200000*0.08+400000*0.015);break;
        default:
        printf("%d",a=a*0.175+200000*0.08+400000*0.015+(a-1000000)*0.01);break;
2023-02-01 22:52:22