解题思路:
注意事项:
参考代码:
#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”就行。
0.0分
6 人评分
#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; }
能直接打10%么,不用小数形式
#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就不行了
小菜鸟 2019-02-28 16:25:06 |
额,知道,打错字母了
#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; }
#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; } 想问一下这哪有问题
h 2019-02-18 18:44:31 |
第五排scanf不能用换行符,你把它删了就行,我测试过了是正确的
nxw 2019-02-19 10:17:57 |
太感谢你啦,我想了老久也不明白。哪这是为什么呢,加个换行符就不行了
nxw 2019-02-19 10:30:12 |
顺便想问一下,我能不能再帮我看一下这个程序哪问题
h 2019-02-19 10:55:33 |
@H1810820022 /*具体我也没测试,百度了一下。*/在scanf里 \n 很特别的,不是要求输入一个回车换行。老师应该专门强调一下这点。 引用一下别人的说法: 过滤空格、制表符、回车等输入,也就是说 scanf("%d\n", &i); printf("%d\n", i); 你输入一个数后,它是不会立即显示的,要等再接收到一个非(空格、制表符、回车)的输入scanf语句才结束。
nxw 2019-02-19 11:15:47 |
谢谢啦
KobeandJay 2020-02-03 18:06:54 |
不对,如果i是1-9之间一个数,第一个if就错了
h 2020-03-06 23:46:37 |
@KobeandJay 确实,这里应该用浮点型
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:636 |
震宇大神的杀毒软件 (C语言代码)浏览:1162 |
时间转换 (C语言代码)浏览:698 |
数组输出 (C语言代码)浏览:749 |
整数平均值 (C语言代码)浏览:856 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:692 |
小O的乘积 (C++代码)浏览:545 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:479 |
C语言程序设计教程(第三版)课后习题9.4 (C语言代码)浏览:3412 |
母牛的故事 (C语言代码)浏览:547 |