解题思路:

注意事项:

参考代码:

#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 条评论

Monster00 4年前 回复TA
#include <stdio.h>
int main()
{	
	int a,i=0;
	int b[6];
	scanf ("%d",&a);
	if (a<=100000){
		b[i]=a*0.1;
	} 	else if (a<=200000){
		++i;b[i]=(a-100000)*0.075+10000;
	} 	else if (a<=400000){
		++i;b[i]=(a-200000)*0.05+17500;
	} 	else if (a<=600000){
		++i;b[i]=(a-400000)*0.03+27500;
	}	else if (a<=1000000){
		++i;b[i]=(a-600000)*0.015+33500;
	}	else if (a>1000000){
		++i;b[i]=(a-1000000)*0.01+39500;
	}	

	printf("%d",b[i]);

	return 0;
}
h 4年前 回复TA
@nxw @KobeandJay 确实,这里应该用浮点型
月色降至 4年前 回复TA
@月色降至 嗯,谢谢
h 4年前 回复TA
@月色降至 我觉得应该是因为%在c语言里面是“求模运算符"的意思,和平时用的%(百分号)不一样,所以可能不能这样写吧。
月色降至 4年前 回复TA
@月色降至 我试了不行,但是我不知道为什么,我刚学这个
h 4年前 回复TA
@月色降至 你好,你可以把代码复制下来再改参数,自行跑一下,我也没试过
月色降至 4年前 回复TA
能直接打10%么,不用小数形式
KobeandJay 4年前 回复TA
@nxw 不对,如果i是1-9之间一个数,第一个if就错了
By无邪 5年前 回复TA
这个题目这么难理解
小菜鸟 5年前 回复TA
@小菜鸟 额,知道,打错字母了