解题思路:

注意事项:

参考代码:

#include <stdio.h>
int main(void){
		double a,pm;
		scanf("%lf",&a);
		if (a>=0 && a<=100000)
			pm=a*0.1;
		else if(a>100000 && a<=200000)
			pm=100000*0.1+(a-100000)*0.075;		
		else if(a>200000 && a<=400000)
			pm=100000*0.175+(a-200000)*0.05;
		else if(a>400000 && a<=600000)
			pm=100000*0.175+200000*0.05+(a-400000)*0.03;
		else if(a>600000 && a<=1000000)
			pm=100000*0.175+200000*0.05+200000*0.03+(a-600000)*0.015;
		else
			pm=100000*0.175+200000*0.05+200000*0.03+400000*0.015+(a-1000000)*0.01;
		printf("%.0lf\n",pm);
		return 0;
}

具体差不多还是这么算,只不过换成了double类型,注意用“%lf”和输出“%.0lf”就行。

点赞(11)
 

0.0分

4 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 20 条评论

小菜鸟 5年前 回复TA
#include<stdio.h>
int main()
{
	int a;
	int i;
	scanf("%d",&i);
	if(i>0&&i<=100000)
	a=i*0.1;
	else if(i>100000 && i<=200000)
		a=(i-100000)*0.075+100000*0.1;

		else if(i>200000&&i<=400000)
		a=(i-200000)*0.05+100000*0.175;

		else if(a>400000&&a<=600000)
		a=(i-400000)*0.03+100000*0.175+200000*0.05;

		else if(a>600000&&a<=1000000)
		a=(i-600000)*0.015+100000*0.175+200000*0.08;

		else if(a>1000000)
		a=(i-1000000)*0.01+100000*0.175+200000*0.08+400000*0.015;
	
		printf("%d\n",a);

    return 0;
}
哪里错啊,超过40W就不行了
nxw 5年前 回复TA
@nxw 谢谢啦
nxw 5年前 回复TA
@nxw 高手
h 5年前 回复TA
@nxw 不好意思,我也才初三,看不懂这个。
h 5年前 回复TA
@nxw @H1810820022 /*具体我也没测试,百度了一下。*/在scanf里 \n 很特别的,不是要求输入一个回车换行。老师应该专门强调一下这点。 引用一下别人的说法: 过滤空格、制表符、回车等输入,也就是说 scanf("%d\n", &i); printf("%d\n", i); 你输入一个数后,它是不会立即显示的,要等再接收到一个非(空格、制表符、回车)的输入scanf语句才结束。
nxw 5年前 回复TA
#include<stdio.h>
int main()
{
	int a,b,c,d,e,f,g;
	scanf("%d",&a);
	e=1;
	g=0;
	b=0;
	d=6;
	for(c=10000;b<=0;d=d-1)
{
		b=a/c;
		c=c/10;
		
}
		printf("%d\n",d);
	d=6;
	for(c=10000;d>=0;d=d-1)
{
		b=a/c%10;
		c=c/10;	
	printf("%d ",b);
	f=b*e;
	if(f<=0)
	e=1;
	else
		e=e*10;
    g=g+f;
}
    printf("%d\n",g);
	return 0;
}
nxw 5年前 回复TA
@nxw 顺便想问一下,我能不能再帮我看一下这个程序哪问题
nxw 5年前 回复TA
@nxw 太感谢你啦,我想了老久也不明白。哪这是为什么呢,加个换行符就不行了
h 5年前 回复TA
@nxw 第五排scanf不能用换行符,你把它删了就行,我测试过了是正确的
nxw 5年前 回复TA
#include<stdio.h>
int main()
{
	int i,a;
	scanf("%d\n",&i);
	if(i<=100000)
		a=i*10/100;
	else if(i>100000&&i<=200000)
		a=100000*10/100+(i-100000)*75/1000;
	else if(i>200000&&i<=400000)
		a=100000*10/100+100000*75/1000+(i-200000)*5/100;
    else if(i>400000&&i<=600000)
		a=100000*10/100+100000*75/1000+200000*5/100+(i-400000)*3/100;
	else if(i>600000&&i<=1000000)
		a=100000*10/100+100000*75/1000+200000*5/100+200000*3/100+(i-600000)*15/1000;
	else
		a=100000*10/100+100000*75/1000+200000*5/100+200000*3/100+400000*15/1000+(i-1000000)*1/100;
	printf("%d\n",a);
	return 0;
}
想问一下这哪有问题