1031: 判断点在第几象限
1032:员工薪水
1033: 五级制成绩
1034: 夏季促销
1035: 分段函数求值
1036:某年某月有多少天
1037:四则运算
1038: 绝对值最大
1039:n个数求和
1040:数列求和1
1031: 判断点在第几象限
题目描述从键盘输入2个整数x、y值,表示平面上一个坐标点,判断该坐标点处于第几象限,并输出相应的结果。
输入
输入x,y值表示一个坐标点。坐标点不会处于x轴和y轴上,也不会在原点。
输出
输出对应的象限,用数字1,2,3,4分别对应四个象限。>
样例输入 Copy
1 1
样例输出 Copy
1
解题思路:
根据每一个象限横坐标纵坐标的正负号判断即可
AC代码:
#include<stdio.h>
int main(){
double x,y;
scanf("%lf %lf",&x,&y);
if(x>0&&y>0)
printf("1\n");
else if(x<0&&y>0)
printf("2\n");
else if(x<0&&y<0)
printf("3\n");
else
printf("4\n");
return 0;
}
1032: 员工薪水
题目描述某公司规定,销售人员工资由基本工资和销售提成两部分组成,其中基本工资是1500元/月,销售提成规则如下:
销售额小于等于10000元时,按照5%提成;
销售额大于10000元但小于等于50000元时,超出10000部分按照3%提成;
销售额大于50000元时,超出50000部分按照2%提成。
编写程序,根据销售额计算员工收入。
输入
输入一个整数表示销售额
输出
输出员工的薪水,保留2位小数。
样例输入 Copy
30000
样例输出 Copy
2600.00
解题思路:
根据题目要求对相应销售额部分,计算出相应的提成,然后想加。注意分类
AC代码:
#include<stdio.h>
int main(){
int salary;
double total=1500;//基础工资
scanf("%d",&salary);
if(salary<=10000)
total+=salary*0.05;
else if(salary<=50000)
total+=10000*0.05+(salary-10000)*0.03;
else
total+=10000*0.05+40000*0.03+(salary-50000)*0.02;
printf("%.2f\n", total);
return 0;
}
1033五级制成绩
题目描述给定一个百分制成绩, 请根据百分制成绩输出其对应的等级。转换关系如下:
90分及以上为’A’,80~89为’B’, 70~79为’C’, 60~69为’D’,60分以下为’E’。
输入
一个百分制成绩(0~100的整数)。
输出
输出对应的等级。
样例输入 Copy
100
样例输出 Copy
A
解题思路:
用几个if else 判断一下就完事了
AC代码:
#include<stdio.h>
int main(){
int score;
scanf("%d",&score);
if(score<60)
printf("E\n");
else if(score>=60&&score<=69)
printf("D\n");
else if(score>=70&&score<=79)
printf("C\n");
else if(score>=80&&score<=89)
printf("B\n");
else
printf("A\n");
return 0;
}
1034: 夏季促销
题目描述商场夏季促销,购物500元以下,不打折;购物500元(含)以上,95折;购物1000元(含)以上,9折;购物3000元(含)以上,85折;购物5000元(含)以上,8折。根据消费金额,确定用户实际需要支付的数目。
输入
输入一个实数,表示消费金额。
输出
输出一个实数,表示用户实际需要支出的数目,保留两位小数。
样例输入 Copy
5100
样例输出 Copy
4080.00
解题思路:
按照促销要求进行相应的折扣即可
AC代码:
#include<stdio.h>
int main(){
int money;
double total;
scanf("%d",&money);
if(money<500)
total=money;
else if(money>=500&&money<1000)
total=money*0.95;
else if(money>=1000&&money<3000)
total=money*0.90;
else if(money>=3000&&money<5000)
total=money*0.85;
else
total=money*0.80;
printf("%.2f\n", total);
return 0;
}
1035: 分段函数求值
题目描述已知:y是x的函数,
当x<-2时,y=7-2x;
当x>=-2,且x<3时,y=5-|3x+2|;
当x>=3时,y=3x+4
输入
任意输入一个整数x。
输出
输出为一个整数,即x对应的函数值。
样例输入 Copy
2
样例输出 Copy
-3
解题思路:
按照要进行分段求出函数值即可
AC代码:
#include<stdio.h>
#include<math.h>
int main(){
int x,y;
scanf("%d",&x);
if(x<-2)
y=7-2*x;
else if(x>=-2&&x<3)
y=5-fabs(3*x+2);
else
y=3*x+4;
printf("%d\n",y);
return 0;
}
1036: 某年某月有多少天
题目描述给你一个年份和月份,求该月有多少天
输入
一个年份(正整数),一个月份(1-12),中间有一个空格隔开
输出
该月的天数,单独占一行。
样例输入 Copy
2012 2
样例输出 Copy
29
解题思路:
1,3,5,7,8,10,12每一个月份都是31天
4,6,9,11每一个月30天
2月闰年29天非闰年28天
AC代码:
#include<stdio.h>
#include<math.h>
int main(){
int year,month,day;
scanf("%d %d",&year,&month);
if(month==4||month==6||month==9||month==11)
day=30;
else if(month==2){
if((year%400==0)||(year%4==0&&year%100!=0))
day=29;
else
day=28;
}
else
day=31;
printf("%d\n",day);
return 0;
}
1037: 四则运算
题目描述给你一个简单的四则运算表达式,包含两个实数和一个运算符,请编程计算出结果
输入
表达式的格式为:s1 op s2, s1和s2是两个实数,op表示的是运算符(+,-,*,/),也可能是其他字符。注意运算符两侧各有一个空格。
输出
如果运算符合法,输出表达式的值;若运算符不合法或进行除法运算时除数是0,则输出"Wrong input!"。最后结果小数点后保留两位。
样例输入 Copy
1.0 + 1.0
样例输出 Copy
2.00
解题思路:
进行对应的加减乘除即可只是对于分母是0的情况需要用fabs(s2)<1e-10判断
AC代码:
#include<stdio.h>
#include<math.h>
int main()
{
double s1,s2,result=0;
char op;
int flag=0;
scanf("%lf %c %lf",&s1,&op,&s2);
if(op=='+')
result=s1+s2;
else if(op=='-')
result=s1-s2;
else if(op=='*')
result=s1*s2;
else if(op=='/')
if(fabs(s2)<1e-10)
flag=1;
else
result=s1/s2;
else
flag=1;
if(flag==0)
printf("%.2f\n",result);
else
printf("Wrong input!");
return 0;
}
1038: 绝对值最大
题目描述输入3个整数,输出绝对值最大的那个数。
输入
输入包含3个int范围内的整数,用空格隔开。
输出
输出三个数中绝对值最大的数,单独占一行。若绝对值最大的数不唯一,则输出最先出现的那个。例如,若输入为1 -3 3,则输出为-3;若输入为1 3 -3则输出为3。
样例输入 Copy
1 2 -3
样例输出 Copy
-3
解题思路:
三个数比较大小一样,只不过比较的时候加上绝对值就行,但是在数值交换的时候需要交换原数值(题目要求输出原数),
按顺序输出只需要在第二个和第三个进行比较的时候如果numb2等于numb3就可以保证即使相等也是输出最先出现的那一个
AC代码:
#include<stdio.h>
#include<math.h>
int main(){
int numb1,numb2,numb3,temp;
scanf("%d %d %d", &numb1,&numb2,&numb3);
if(fabs(numb1)>=fabs(numb2)){
temp=numb1;
numb1=numb2;
numb2=temp;
}
if(fabs(numb2)>=fabs(numb3)){
temp=numb2;
numb2=numb3;
numb3=temp;
}
printf("%d\n", numb3);
return 0;
}
1039: n个数求和
题目描述输入一个整数n和n个整数,输出这n个整数的和。
输入
输入有两行:第一行是一个正整数n,第二行是n个整数。
输出
输出一个整数,即n个数的和。输出单独占一行。
样例输入 Copy
3
7 3 2
样例输出 Copy
12
解题思路:
用一个循环直接搞定
AC代码:
#include<stdio.h>
#include<math.h>
int main(){
int i,n,num,total=0;
scanf("%d", &n);
for(i=0; i<n; i++){
scanf("%d", &num);
total+=num;
}
printf("%d\n", total);
return 0;
}
1040: 数列求和1
题目描述输入一个整数n,输出数列1+1/3+1/5+……前n项的和。
输入
输入只有一个正整数n。
输出
结果保留2位小数,单独占一行
样例输入 Copy
3
样例输出 Copy
1.53
解题思路:
需要注意定义的时候需要把分母定义为小数(整数/小数或者小数/小数结果才会是小数)
AC代码:
#include<stdio.h>
int main(){
int i,n;
double total,n1=1.0;
scanf("%d", &n);
for(i=1; i<=n; i++){
total+=1/n1;
n1+=2;
}
printf("%.2f\n", total);
return 0;
}