csuoj期中考试模拟题1简单代码的实现~
1.送分题:
神出了这样一个题:
给你三个数,在这三个数中间任意加或者是+,然后可以随便打括号,只要这个表达式合法
比如说1 2 3可以得到:
1+23=7
1(2+3)=5
123=6
(1+2)3=9
不能改变这三个数的原顺序
最大化表达式的值
如题目所见,这就是个送分题
不过确实不是很难,就是可能会犯些小错误
以下是本菜鸡的小代码~
#include <stdio.h>
int max(int a[])
{
int i;
int max=a[0];
for(i=0;i<4;i++)
{
if(max<a[i])
{
max=a[i];
}
}
return max;
}
int main()
{
int a,b,c;
while (scanf("%d%d%d",&a,&b,&c)!=EOF)
{
int d[4];
d[0]=a+b*c;
d[1]=a*(b+c);
d[2]=a*b*c;
d[3]=(a+b)*c;
printf("%d\n",max(d));
}
return 0;
}
2.交税题
今天终于到了发第一桶金的日子了,小帅兴高采烈的看着这个月到手的a元工资,突然想起自己也要开始纳税了。税率表如下,请问小帅交完税,还剩多少钱?
收入 | 税率 |
---|---|
不超过3000元的部分 | 3% |
超过3000元至12000元的部分 | 10% |
超过12000元至25000元的部分 | 20% |
超过25000元至35000元的部分 | 25% |
超过35000元至55000元的部分 | 30% |
超过55000元至80000元的部分 | 35% |
超过80000元的部分 | 45% |
这就是一个简单的分段函数,没啥大不了的
不过有一些要注意的问题:
数据要用double形式(亲测)
注意空格
见代码:
#include<stdio.h>
double tax(double a)
{
double y;
if(a<=3000)
{
y=0.03*a;
}
if(a>3000&&a<=12000)
{
y=90+0.1*(a-3000);
}
if(a>12000&&a<=25000)
{
y=90+900+0.2*(a-12000)