diff --git a/06-1/1/README.md b/06-1/1/README.md new file mode 100644 index 0000000..9a3a12e --- /dev/null +++ b/06-1/1/README.md @@ -0,0 +1,54 @@ +【问题描述】 + +输入两组正整数,每组整数不超过20个,并且每组整数中不存在重复数据,也不存在是另一个数据整数倍的数据。编写一个程序按下面要求合并两组整数并输出: + +1. 合并时如果一个数据是另一个数据的整数倍,则剔除;若数据相同,则只保留一个; + +2. 从小到大顺序输出合并后数据。 + +【输入形式】 + +先从控制台输入第一组整数的个数,然后在下一行输入第一组整数,各整数之间以一个空格分隔;然后按照同样的方式输入第二组整数。 + +【输出形式】 + +在标准输出上按从小到大顺序输出合并后的数据,各整数之间以一个空格分隔,最后一个整数后也可以有一个空格。 + +【输入样例】 + +``` +4 +25 93 61 2 +6 +5 22 3 67 13 61 +``` + +【输出样例】 + +``` +2 3 5 13 61 67 +``` + +【样例说明】 + +第一组整数有4个,第二组有6个,其中第一组整数中的25是第二组中的5的倍数,所以丢弃掉不合并。同样第一组中的93和第二组中的22也不合并到最后的数据中。另外第一组的61和第二组的61重复,只保留一个。最后按照从小到大的顺序输出合并后的数据为:`2 3 5 13 61 67` 。 + +【评分标准】 + +该题要求按照从小到大的顺序输出合并后的数据,共有5个测试点,提交程序文件名为 `merge.c` 。 + +# 运行结果 + +成功通过编译, 且无编译警告 + +共有测试数据:5 +平均占用内存:1.945K +平均CPU时间:0.00607S +平均墙钟时间:0.00609S + +测试数据 评判结果 +测试数据1 完全正确 +测试数据2 完全正确 +测试数据3 完全正确 +测试数据4 完全正确 +测试数据5 完全正确 diff --git a/06-1/1/merge.c b/06-1/1/merge.c new file mode 100644 index 0000000..024319b --- /dev/null +++ b/06-1/1/merge.c @@ -0,0 +1,58 @@ +#include + +int test_if_have_value(int a[100],int n,int value) { + for (int i = 0; i < n; i++) { + if (a[i] == value)return 1; + } + return 0; +} +int main() +{ + int a[100],b[100],c[100],n1,n2,n_=0,temp; + scanf("%d",&n1); + for(int i=0;ic[j]){ + temp=c[i]; + c[i]=c[j]; + c[j]=temp; + } + } + } + + for(int i=0;i + +int isPalindrome(int n) { + int m = n; + int r = 0; + while (n > 0) { + r = r * 10 + n % 10; + n /= 10; + } + return r == m; +} +int main() +{ + int a,b; + scanf("%d %d",&a,&b); + for(int i=a;i<=b;i++){ + if(isPalindrome(i)){ + printf("%d\n",i); + } + } + return 0; +} diff --git a/06-1/3/3.c b/06-1/3/3.c new file mode 100644 index 0000000..aeb628d --- /dev/null +++ b/06-1/3/3.c @@ -0,0 +1,18 @@ +#include + +int main(){ + int n; + + scanf("%d",&n); + + for(int i=1;i<=n;i++){ + for(int j=1;j<=n-i;j++){ + printf(" "); + } + for(int j=1;j<=i;j++){ + printf("%d ",i); + } + printf("\n"); + } + return 0; +} diff --git a/06-1/3/README.md b/06-1/3/README.md new file mode 100644 index 0000000..427643a --- /dev/null +++ b/06-1/3/README.md @@ -0,0 +1,39 @@ +【问题描述】 + +打印数字金字塔。输入层数,输出金字塔。 + +【输入形式】 + +【输出形式】 + +【样例输入】 + +``` +3 +``` + +【样例输出】 + +``` + 1 + + 2 2 + +3 3 3 +``` + +【样例说明】 + +【评分标准】 + +# 运行结果 + +成功通过编译, 且无编译警告 + +共有测试数据:1 +平均占用内存:1.953K +平均CPU时间:0.00434S +平均墙钟时间:0.00434S + +测试数据 评判结果 +测试数据1 完全正确 diff --git a/06-1/4/4.c b/06-1/4/4.c new file mode 100644 index 0000000..b99d6af --- /dev/null +++ b/06-1/4/4.c @@ -0,0 +1,13 @@ +#include +#include + +float dist(float x1, float y1, float x2, float y2){ + return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); +} +int main(){ + float x1,y1,x2,y2; + + scanf("%f %f %f %f",&x1,&y1,&x2,&y2); + printf("%.2f\n", dist(x1,y1,x2,y2)); + return 0; +} diff --git a/06-1/4/README.md b/06-1/4/README.md new file mode 100644 index 0000000..173ecce --- /dev/null +++ b/06-1/4/README.md @@ -0,0 +1,43 @@ +【问题描述】 + +给定平面任意两点坐标(x1,y1)和(x2,y2),设计dist(x1,y1,x2,y2),求这两点之间的距离(坐标值为实数,距离值保留2位小数) + +【输入形式】 + +一行输入两点的坐标值,一共4个实数,实数间用空格间隔; + +【输出形式】 + +一行输出距离值,保留2位小数 + +【样例输入】 + +``` +1 0 0 2 +``` + +【样例输出】 + +``` +2.24 +``` + +【样例说明】 + +【评分标准】 + +# 运行结果 + +成功通过编译, 且无编译警告 + +共有测试数据:5 +平均占用内存:1.996K +平均CPU时间:0.00505S +平均墙钟时间:0.00506S + +测试数据 评判结果 +测试数据1 完全正确 +测试数据2 完全正确 +测试数据3 完全正确 +测试数据4 完全正确 +测试数据5 完全正确 diff --git a/06-1/README.md b/06-1/README.md new file mode 100644 index 0000000..71f8a09 --- /dev/null +++ b/06-1/README.md @@ -0,0 +1,3 @@ +# 第六章 函数作业 + +> 作业时间: 2021-11-21 10:01:00 至 2021-12-18 10:00:00 diff --git a/CMakeLists.txt b/CMakeLists.txt index badb6e1..bf0a10d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,10 +4,14 @@ add_executable(c0604 05/4/c0604.c) add_executable(c12 05-1/1/c12.c) add_executable(example1b 05-1/2/example1b.c) add_executable(example2b 05-1/3/example2b.c) -add_executable(4 05-1/4/4.c) +add_executable(4 06-1/4/4.c) add_executable(5 05-1/5/5.c) add_executable(exam1 05-1/6/exam1.c) add_executable(1 06/1/1.c) add_executable(2 06/2/2.c) add_executable(isprime 06/3/isprime.c) -add_executable(c31 06/4/c31.c) \ No newline at end of file +add_executable(c31 06/4/c31.c) +add_executable(merge 06-1/1/merge.c) +add_executable(loop 06-1/2/loop.c) +add_executable(3 06-1/3/3.c) +add_executable(4 06-1/4/4.c) diff --git a/README.md b/README.md index f134a1a..302ad50 100644 --- a/README.md +++ b/README.md @@ -61,3 +61,8 @@ A repo to record my study life. - [2. 统计学生成绩,再将成绩按照从大到小的顺序输出](https://github.com/xtaodada/C-study/tree/master/06/2) - [3. 素数判断](https://github.com/xtaodada/C-study/tree/master/06/3) - [4. 整数各位数求和](https://github.com/xtaodada/C-study/tree/master/06/4) +- [第六章 函数作业](https://github.com/xtaodada/C-study/tree/master/06-1) + - [1. 合并整数](https://github.com/xtaodada/C-study/tree/master/06-1/1) + - [2. 回文数](https://github.com/xtaodada/C-study/tree/master/06-1/2) + - [3. 打印数字金字塔。输入层数,输出金字塔](https://github.com/xtaodada/C-study/tree/master/06-1/3) + - [4. 实验9——函数基础——两点间的距离](https://github.com/xtaodada/C-study/tree/master/06-1/4)