From 2a6c52c46025cc0523d5d2c3b36cec28f505b3a4 Mon Sep 17 00:00:00 2001 From: xtaodada Date: Sat, 30 Oct 2021 00:05:32 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E7=AB=A0=20=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 03-1/1/1.c | 24 ++++++++++++++++++ 03-1/1/README.md | 33 +++++++++++++++++++++++++ 03-1/2/2.c | 24 ++++++++++++++++++ 03-1/2/README.md | 64 ++++++++++++++++++++++++++++++++++++++++++++++++ 03-1/3/3.c | 14 +++++++++++ 03-1/3/README.md | 53 +++++++++++++++++++++++++++++++++++++++ 03-1/4/4.c | 22 +++++++++++++++++ 03-1/4/README.md | 49 ++++++++++++++++++++++++++++++++++++ 03-1/README.md | 3 +++ README.md | 5 ++++ 10 files changed, 291 insertions(+) create mode 100644 03-1/1/1.c create mode 100644 03-1/1/README.md create mode 100644 03-1/2/2.c create mode 100644 03-1/2/README.md create mode 100644 03-1/3/3.c create mode 100644 03-1/3/README.md create mode 100644 03-1/4/4.c create mode 100644 03-1/4/README.md create mode 100644 03-1/README.md diff --git a/03-1/1/1.c b/03-1/1/1.c new file mode 100644 index 0000000..d3b1cc1 --- /dev/null +++ b/03-1/1/1.c @@ -0,0 +1,24 @@ +#include + +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; +} diff --git a/03-1/1/README.md b/03-1/1/README.md new file mode 100644 index 0000000..d6ed748 --- /dev/null +++ b/03-1/1/README.md @@ -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 完全正确 diff --git a/03-1/2/2.c b/03-1/2/2.c new file mode 100644 index 0000000..fe6bccc --- /dev/null +++ b/03-1/2/2.c @@ -0,0 +1,24 @@ +#include + +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; +} diff --git a/03-1/2/README.md b/03-1/2/README.md new file mode 100644 index 0000000..79761d6 --- /dev/null +++ b/03-1/2/README.md @@ -0,0 +1,64 @@ +【问题描述】 2011年开始实行新个人所得税法,要求输入月薪salary,输出应交的个人所得税 tax (保留两位小数)。 +``` + 新税法方案如下: + tax=rate*(salary-3500) - deduction + 当 salary<=3500时,rate=0、deduction=0; + 当 35005010.87 +tax=46.09 + +【输入输出样例2】(下划线部分表示输入) + +Enter the salary: 32098.76 +tax=6144.09 + +【输入输出样例3】(下划线部分表示输入) + +Enter the salary: 3000 +tax=0.00 + + +【输入输出样例4】(下划线部分表示输入) + + +Enter the salary: 59000 +tax=13920.00 + +【输入输出样例5】(下划线部分表示输入) + +Enter the salary: 84500 +tax=22945.00 + +【样例说明】 + +输入提示符后要加一个空格。例如`Enter the salary : ` ,其中:后要加一个且只能一个空格。 + +输出语句的=两边无空格。 + +英文字母区分大小写。必须严格按样例输入输出。 + +# 运行结果 + +成功通过编译, 且无编译警告 + +共有测试数据:5 +平均占用内存:1.996K +平均CPU时间:0.00632S +平均墙钟时间:0.00632S + +测试数据 评判结果 +测试数据1 完全正确 +测试数据2 完全正确 +测试数据3 完全正确 +测试数据4 完全正确 +测试数据5 完全正确 diff --git a/03-1/3/3.c b/03-1/3/3.c new file mode 100644 index 0000000..3f095ee --- /dev/null +++ b/03-1/3/3.c @@ -0,0 +1,14 @@ +#include + +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; +} diff --git a/03-1/3/README.md b/03-1/3/README.md new file mode 100644 index 0000000..8b02a97 --- /dev/null +++ b/03-1/3/README.md @@ -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 完全正确 diff --git a/03-1/4/4.c b/03-1/4/4.c new file mode 100644 index 0000000..d91d6fa --- /dev/null +++ b/03-1/4/4.c @@ -0,0 +1,22 @@ +#include + +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; +} diff --git a/03-1/4/README.md b/03-1/4/README.md new file mode 100644 index 0000000..59f59f2 --- /dev/null +++ b/03-1/4/README.md @@ -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: 1 +[1] apples price=3.0 +Enter choice: 5 +other price=0.0 +Enter choice: 4 +[4] grapes price=10.2 +Enter choice: 0 +Thanks +``` + +【样例说明】 + +输入提示符后要加一个空格。例如Enter choice: ,其中:后要加一个且只能一个空格。 +输出语句的=两边无空格。 +英文字母区分大小写。必须严格按样例输入输出。 + +# 运行结果 + +成功通过编译, 且无编译警告 + +共有测试数据:1 +平均占用内存:1.945K +平均CPU时间:0.00717S +平均墙钟时间:0.00719S + +测试数据 评判结果 +测试数据1 完全正确 diff --git a/03-1/README.md b/03-1/README.md new file mode 100644 index 0000000..c48937a --- /dev/null +++ b/03-1/README.md @@ -0,0 +1,3 @@ +# 第三章 作业 + +> 作业时间: 2021-10-27 21:04:00 至 2021-11-07 23:55:00 diff --git a/README.md b/README.md index 515b376..0525922 100644 --- a/README.md +++ b/README.md @@ -28,3 +28,8 @@ A repo to record my study life. - [1. 求分段函数的值](https://github.com/xtaodada/C-study/tree/master/03/1) - [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) +- [第三章 作业](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)