第三章 作业
This commit is contained in:
parent
02faf4462e
commit
2a6c52c460
24
03-1/1/1.c
Normal file
24
03-1/1/1.c
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
|
||||||
|
int month2day(int year,int month){
|
||||||
|
int tmp[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
|
||||||
|
|
||||||
|
if (year % 4 == 0)tmp[1]++;
|
||||||
|
|
||||||
|
return tmp[month-1];
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
int year,month,day;
|
||||||
|
|
||||||
|
printf("Input year, month, day: \n");
|
||||||
|
scanf("%d %d %d",&year,&month,&day);
|
||||||
|
|
||||||
|
for(;month>1;month--){
|
||||||
|
day += month2day(year,month);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Days of year: %d",day);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
33
03-1/1/README.md
Normal file
33
03-1/1/README.md
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
【问题描述】
|
||||||
|
|
||||||
|
输入日期(年、月、日),输出它是该年的第几天。
|
||||||
|
|
||||||
|
【输入形式】
|
||||||
|
|
||||||
|
从键盘输入一个日期。
|
||||||
|
|
||||||
|
【输入输出样例1】(下划线部分表示输入)
|
||||||
|
|
||||||
|
Input year, month, day: 1981 3 1
|
||||||
|
|
||||||
|
Days of year: 60
|
||||||
|
|
||||||
|
【样例说明】
|
||||||
|
|
||||||
|
输入提示符后要加一个空格。例如"Input n: ",其中":"后要加一个且只能一个空格。
|
||||||
|
|
||||||
|
英文字母区分大小写。必须严格按样例输入输出。
|
||||||
|
|
||||||
|
# 运行结果
|
||||||
|
|
||||||
|
成功通过编译, 且无编译警告
|
||||||
|
|
||||||
|
共有测试数据:3
|
||||||
|
平均占用内存:1.946K
|
||||||
|
平均CPU时间:0.00606S
|
||||||
|
平均墙钟时间:0.00607S
|
||||||
|
|
||||||
|
测试数据 评判结果
|
||||||
|
测试数据1 完全正确
|
||||||
|
测试数据2 完全正确
|
||||||
|
测试数据3 完全正确
|
24
03-1/2/2.c
Normal file
24
03-1/2/2.c
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int deduction;
|
||||||
|
float salary,tax,rate;
|
||||||
|
|
||||||
|
scanf("%f",&salary);
|
||||||
|
|
||||||
|
if(salary<=3500){rate=0;deduction=0;}
|
||||||
|
else if(salary<=5000){rate=0.03;deduction=0;}
|
||||||
|
else if(salary<=8000){rate=0.1;deduction=105;}
|
||||||
|
else if(salary<=12500){rate=0.2;deduction=555;}
|
||||||
|
else if(salary<=38500){rate=0.25;deduction=1005;}
|
||||||
|
else if(salary<=58500){rate=0.3;deduction=2755;}
|
||||||
|
else if(salary<=83500){rate=0.35;deduction=5505;}
|
||||||
|
else {rate=0.45;deduction=13505;}
|
||||||
|
|
||||||
|
|
||||||
|
tax = rate * salary - rate * 3500 - deduction;
|
||||||
|
|
||||||
|
printf("%.2f",tax);
|
||||||
|
return 0;
|
||||||
|
}
|
64
03-1/2/README.md
Normal file
64
03-1/2/README.md
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
【问题描述】 2011年开始实行新个人所得税法,要求输入月薪salary,输出应交的个人所得税 tax (保留两位小数)。
|
||||||
|
```
|
||||||
|
新税法方案如下:
|
||||||
|
tax=rate*(salary-3500) - deduction
|
||||||
|
当 salary<=3500时,rate=0、deduction=0;
|
||||||
|
当 3500<salary<=5000时,rate=3%、deduction=0;
|
||||||
|
当 5000<salary<=8000时,rate=10%、deduction=105;
|
||||||
|
当 8000<salary<=12500时,rate=20% 、deduction=555;
|
||||||
|
当 12500<salary<=38500时, rate=25% 、deduction=1005;
|
||||||
|
当 38500<salary<=58500时, rate=30% 、deduction=2755;
|
||||||
|
当 58500<salary<=83500时, rate=35% 、deduction=5505;
|
||||||
|
当 83500<salary时, rate=45% 、deduction=13505;
|
||||||
|
```
|
||||||
|
|
||||||
|
【输入输出样例1】(下划线部分表示输入)
|
||||||
|
|
||||||
|
Enter the salary: <u>5010.87</u>
|
||||||
|
tax=46.09
|
||||||
|
|
||||||
|
【输入输出样例2】(下划线部分表示输入)
|
||||||
|
|
||||||
|
Enter the salary: <u>32098.76</u>
|
||||||
|
tax=6144.09
|
||||||
|
|
||||||
|
【输入输出样例3】(下划线部分表示输入)
|
||||||
|
|
||||||
|
Enter the salary: <u>3000</u>
|
||||||
|
tax=0.00
|
||||||
|
|
||||||
|
|
||||||
|
【输入输出样例4】(下划线部分表示输入)
|
||||||
|
|
||||||
|
|
||||||
|
Enter the salary: <u>59000</u>
|
||||||
|
tax=13920.00
|
||||||
|
|
||||||
|
【输入输出样例5】(下划线部分表示输入)
|
||||||
|
|
||||||
|
Enter the salary: <u>84500</u>
|
||||||
|
tax=22945.00
|
||||||
|
|
||||||
|
【样例说明】
|
||||||
|
|
||||||
|
输入提示符后要加一个空格。例如`Enter the salary : ` ,其中:后要加一个且只能一个空格。
|
||||||
|
|
||||||
|
输出语句的=两边无空格。
|
||||||
|
|
||||||
|
英文字母区分大小写。必须严格按样例输入输出。
|
||||||
|
|
||||||
|
# 运行结果
|
||||||
|
|
||||||
|
成功通过编译, 且无编译警告
|
||||||
|
|
||||||
|
共有测试数据:5
|
||||||
|
平均占用内存:1.996K
|
||||||
|
平均CPU时间:0.00632S
|
||||||
|
平均墙钟时间:0.00632S
|
||||||
|
|
||||||
|
测试数据 评判结果
|
||||||
|
测试数据1 完全正确
|
||||||
|
测试数据2 完全正确
|
||||||
|
测试数据3 完全正确
|
||||||
|
测试数据4 完全正确
|
||||||
|
测试数据5 完全正确
|
14
03-1/3/3.c
Normal file
14
03-1/3/3.c
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
float a,b,c;
|
||||||
|
|
||||||
|
scanf("%f %f %f",&a,&b,&c);
|
||||||
|
|
||||||
|
if(a==b && a==c ){printf("equilateral triangle");return 0;}
|
||||||
|
if(a==b || a==c){printf("isoceles triangle");return 0;}
|
||||||
|
if(a*a+b*b == c*c || a*a+c*c == b*b || b*b+c*c == a*a){printf("right-angled triangle");return 0;}
|
||||||
|
if(a+b>c && a+c>b && b+c>a){printf("arbitrary triangle");return 0;}
|
||||||
|
printf("It isn't triangle");
|
||||||
|
return 0;
|
||||||
|
}
|
53
03-1/3/README.md
Normal file
53
03-1/3/README.md
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
【问题描述】 从键盘输入三角形的三条边长,判断能否构成三角形,如能构成三角形,则判断是哪一种类型:等腰三角形(等腰直角算作等腰)、等边三角形、直角三角形、任意三角形。输出要求如下:
|
||||||
|
|
||||||
|
不是三角形,则输出: It isn't triangle.
|
||||||
|
|
||||||
|
等腰三角形,则输出: isoceles triangle
|
||||||
|
|
||||||
|
等边三角形,则输出: equilateral triangle
|
||||||
|
|
||||||
|
直角三角形,则输出: right-angled triangle
|
||||||
|
|
||||||
|
任意三角形,则输出: arbitrary triangle
|
||||||
|
|
||||||
|
【输入形式】
|
||||||
|
|
||||||
|
从键盘输入三角形的三条边长(实数)。
|
||||||
|
|
||||||
|
【输出形式】
|
||||||
|
|
||||||
|
不是三角形,则输出: It isn't triangle.
|
||||||
|
|
||||||
|
等腰三角形,则输出: isoceles triangle
|
||||||
|
|
||||||
|
等边三角形,则输出: equilateral triangle
|
||||||
|
|
||||||
|
直角三角形,则输出: right-angled triangle
|
||||||
|
|
||||||
|
任意三角形,则输出: arbitrary triangle
|
||||||
|
|
||||||
|
【样例输入1】 1 2 3
|
||||||
|
|
||||||
|
【样例输出1】 It isn't triangle
|
||||||
|
|
||||||
|
【样例输入2】 3.3 4.4 5.5
|
||||||
|
|
||||||
|
【样例输出2】 right-angled triangle
|
||||||
|
|
||||||
|
【样例输入3】 9.8995 14 9.8995
|
||||||
|
|
||||||
|
【样例输出3】 isoceles triangle
|
||||||
|
|
||||||
|
# 运行结果
|
||||||
|
|
||||||
|
成功通过编译, 且无编译警告
|
||||||
|
|
||||||
|
共有测试数据:5
|
||||||
|
平均占用内存:1.965K 平均CPU时间:0.00551S 平均墙钟时间:0.00553S
|
||||||
|
|
||||||
|
测试数据 评判结果
|
||||||
|
测试数据1 完全正确
|
||||||
|
测试数据2 完全正确
|
||||||
|
测试数据3 完全正确
|
||||||
|
测试数据4 完全正确
|
||||||
|
测试数据5 完全正确
|
22
03-1/4/4.c
Normal file
22
03-1/4/4.c
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
int choice;
|
||||||
|
char *names[] = {"apples", "pears", "oranges", "grapes"};
|
||||||
|
float price[4] = {3.0,2.5,4.1,10.2};
|
||||||
|
|
||||||
|
printf("[1] apples\n[2] pears\n[3] oranges\n[4] grapes\n[0] exit\n");
|
||||||
|
|
||||||
|
for(int i=0;i<5;i++){
|
||||||
|
printf("Enter choice: \n");
|
||||||
|
scanf("%d",&choice);
|
||||||
|
|
||||||
|
if(choice==0){break;}
|
||||||
|
else if(choice > 0 && choice < 5){printf("[%d] %s price=%.1f\n",choice,names[choice-1],price[choice-1]);}
|
||||||
|
else {printf("other price=0.0\n");}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Thanks");
|
||||||
|
return 0;
|
||||||
|
}
|
49
03-1/4/README.md
Normal file
49
03-1/4/README.md
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
【问题描述】
|
||||||
|
|
||||||
|
查询水果的单价?有4 种水果,苹果(apple)?梨(pear)?橘子(orange)
|
||||||
|
和葡萄(grape),单价分别为3.00 元/千克,2.50 元/千克,4.10 元/千克
|
||||||
|
和10.20 元/千克?在屏幕上显示以下菜单(编号和选项),用户可以连续
|
||||||
|
查询水果的单价,当查询次数超过5 次时,自动退出查询;不到5次时,
|
||||||
|
用户可以选择退出?当用户输入编号1 ~4,显示相应水果的单价
|
||||||
|
(保留1 位小数);输入0,退出查询;输入0 ~4 之外的其他编号,显示
|
||||||
|
价格为0 最后退出时显示Thanks。
|
||||||
|
|
||||||
|
【输入形式】
|
||||||
|
|
||||||
|
输入水果编号。
|
||||||
|
|
||||||
|
【输入输出样例】(下划线部分表示输入)
|
||||||
|
|
||||||
|
```
|
||||||
|
[1] apples
|
||||||
|
[2] pears
|
||||||
|
[3] oranges
|
||||||
|
[4] grapes
|
||||||
|
[0] exit
|
||||||
|
Enter choice: <u>1</u>
|
||||||
|
[1] apples price=3.0
|
||||||
|
Enter choice: <u>5</u>
|
||||||
|
other price=0.0
|
||||||
|
Enter choice: <u>4</u>
|
||||||
|
[4] grapes price=10.2
|
||||||
|
Enter choice: <u>0</u>
|
||||||
|
Thanks
|
||||||
|
```
|
||||||
|
|
||||||
|
【样例说明】
|
||||||
|
|
||||||
|
输入提示符后要加一个空格。例如Enter choice: ,其中:后要加一个且只能一个空格。
|
||||||
|
输出语句的=两边无空格。
|
||||||
|
英文字母区分大小写。必须严格按样例输入输出。
|
||||||
|
|
||||||
|
# 运行结果
|
||||||
|
|
||||||
|
成功通过编译, 且无编译警告
|
||||||
|
|
||||||
|
共有测试数据:1
|
||||||
|
平均占用内存:1.945K
|
||||||
|
平均CPU时间:0.00717S
|
||||||
|
平均墙钟时间:0.00719S
|
||||||
|
|
||||||
|
测试数据 评判结果
|
||||||
|
测试数据1 完全正确
|
3
03-1/README.md
Normal file
3
03-1/README.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# 第三章 作业
|
||||||
|
|
||||||
|
> 作业时间: 2021-10-27 21:04:00 至 2021-11-07 23:55:00
|
@ -28,3 +28,8 @@ A repo to record my study life.
|
|||||||
- [1. 求分段函数的值](https://github.com/xtaodada/C-study/tree/master/03/1)
|
- [1. 求分段函数的值](https://github.com/xtaodada/C-study/tree/master/03/1)
|
||||||
- [2. 求解四则运算表达式](https://github.com/xtaodada/C-study/tree/master/03/2)
|
- [2. 求解四则运算表达式](https://github.com/xtaodada/C-study/tree/master/03/2)
|
||||||
- [3. 能否被3,5,7整除](https://github.com/xtaodada/C-study/tree/master/03/3)
|
- [3. 能否被3,5,7整除](https://github.com/xtaodada/C-study/tree/master/03/3)
|
||||||
|
- [第三章 作业](https://github.com/xtaodada/C-study/tree/master/03-1)
|
||||||
|
- [1. 输出某日期为该年的第几天](https://github.com/xtaodada/C-study/tree/master/03-1/1)
|
||||||
|
- [2. 计算个人所得税](https://github.com/xtaodada/C-study/tree/master/03-1/2)
|
||||||
|
- [3. 判断三角形](https://github.com/xtaodada/C-study/tree/master/03-1/3)
|
||||||
|
- [4. 查询水果单价](https://github.com/xtaodada/C-study/tree/master/03-1/4)
|
||||||
|
Loading…
Reference in New Issue
Block a user