diff --git a/04-0/1/1.c b/04-0/1/1.c new file mode 100644 index 0000000..d9538ee --- /dev/null +++ b/04-0/1/1.c @@ -0,0 +1,14 @@ +#include + +int main(){ + int sum=0,a=0; + + do{ + sum+=a; + a++; + }while(a<=1000); + + printf("sum=%d",sum); + + return 0; +} diff --git a/04-0/1/README.md b/04-0/1/README.md new file mode 100644 index 0000000..0e00e7c --- /dev/null +++ b/04-0/1/README.md @@ -0,0 +1,29 @@ +【问题描述】 + +用do---while语句实现循环,计算1+2+3+…+1000 。 + +【输入形式】 + +【输出形式】 + +【样例输入】 + +【样例输出】 + +sum=******* + +【样例说明】 + +【评分标准】 + +# 运行结果 + +成功通过编译, 且无编译警告 + +共有测试数据:1 +平均占用内存:1.898K +平均CPU时间:0.00710S +平均墙钟时间:0.00717S + +测试数据 评判结果 +测试数据1 完全正确 diff --git a/04-0/2/2.c b/04-0/2/2.c new file mode 100644 index 0000000..eed4a5a --- /dev/null +++ b/04-0/2/2.c @@ -0,0 +1,14 @@ +#include + +int main() +{ + float sum=0,a=1; + + for(;a<=100;a++){ + sum+=1/a; + } + + printf("sum=%.4f",sum); + + return 0; +} diff --git a/04-0/2/README.md b/04-0/2/README.md new file mode 100644 index 0000000..5184555 --- /dev/null +++ b/04-0/2/README.md @@ -0,0 +1,33 @@ +【问题描述】 + +用for语句实现循环,计算1+1/2+1/3+1/4+...1/100 的和。 + +【输入形式】 + +【输出形式】 + +小数部分保留4位 + +【样例输入】 + +【样例输出】 + +``` +sum=**.**** +``` + +【样例说明】 + +【评分标准】 + +# 运行结果 + +成功通过编译, 且无编译警告 + +共有测试数据:1 +平均占用内存:1.938K +平均CPU时间:0.00533S +平均墙钟时间:0.00530S + +测试数据 评判结果 +测试数据1 完全正确 diff --git a/04-0/3/3.c b/04-0/3/3.c new file mode 100644 index 0000000..22598c1 --- /dev/null +++ b/04-0/3/3.c @@ -0,0 +1,16 @@ +#include + +int main(){ + int num1=0,num2=0; + for(int i=100;i<=200;i++){ + if(i%3==0)continue; + num1++; + } + for(int i=100;i<=200;i++){ + if(i%3==0)continue; + num2++; + if(num2<=10||num2>=num1-9)printf("%d ",i); + } + + return 0; +} diff --git a/04-0/3/README.md b/04-0/3/README.md new file mode 100644 index 0000000..1a86da0 --- /dev/null +++ b/04-0/3/README.md @@ -0,0 +1,31 @@ +【问题描述】 + +要求输出100~200之间的不能被3整除的前10个和最后10个数。 + +对100到200之间的每一个整数进行检查,如果不能被3整除,输出,否则不输出, + +无论是否输出此数,都要接着检查下一个数(直到200为止)。 + +【输入形式】 + +【输出形式】 + +【样例输入】 + +【样例输出】 + +【样例说明】 + +【评分标准】 + +# 运行结果 + +成功通过编译, 且无编译警告 + +共有测试数据:1 +平均占用内存:1.898K +平均CPU时间:0.00707S +平均墙钟时间:0.00708S + +测试数据 评判结果 +测试数据1 完全正确 diff --git a/04-0/4/4.c b/04-0/4/4.c new file mode 100644 index 0000000..dfdfbd9 --- /dev/null +++ b/04-0/4/4.c @@ -0,0 +1,11 @@ +#include + +int main(){ + for(int i=1;i<=4;i++){ + for(int j=1;j<=5;j++){ + printf("%d\t",i*j); + } + printf("\n"); + } + return 0; +} diff --git a/04-0/4/README.md b/04-0/4/README.md new file mode 100644 index 0000000..5e03a84 --- /dev/null +++ b/04-0/4/README.md @@ -0,0 +1,41 @@ +【问题描述】 + +用循环的嵌套来 输出以下 `4*5` 的矩阵。 + +``` +1 2 3 4 5 +2 4 6 8 10 +3 6 9 12 15 +4 8 12 16 20 +``` + +【输入形式】 + +【输出形式】 + +``` +1 2 3 4 5 +2 4 6 8 10 +3 6 9 12 15 +4 8 12 16 20 +``` + +【样例输入】 + +【样例输出】 + +【样例说明】 + +【评分标准】 + +# 运行结果 + +成功通过编译, 且无编译警告 + +共有测试数据:1 +平均占用内存:1.902K +平均CPU时间:0.00506S +平均墙钟时间:0.00504S + +测试数据 评判结果 +测试数据1 完全正确 diff --git a/04-0/5/5.c b/04-0/5/5.c new file mode 100644 index 0000000..49a0d3d --- /dev/null +++ b/04-0/5/5.c @@ -0,0 +1,16 @@ +#include + +int main(){ + int n,zc=0; + + scanf("%d",&n); + + for(int i=2;i<=n-1;i++){ + if(n%i==0){zc=1;break;} + } + + if(zc)printf("%d is not prime.",n); + else printf("%d is prime.",n); + + return 0; +} diff --git a/04-0/5/README.md b/04-0/5/README.md new file mode 100644 index 0000000..b886382 --- /dev/null +++ b/04-0/5/README.md @@ -0,0 +1,43 @@ +【问题描述】 + +输入一个大于3的整数n,判定它是否素数(prime,又称质数)。 + +让n被i整除(i的值从2变到n-1) + +如果n能被2~(n-1)之中任何一个整数整除,则表示n肯定不是素数,不必再继续被后面的整数除,因此,可以提前结束循环 + +【输入形式】 + +100,131,179 + +【输出形式】 + +【样例输入】 + +【样例输出】 + +【样例输入】 + +【样例输出】 + +【样例输入】 + +【样例输出】 + +【样例说明】 + +【评分标准】 + +# 运行结果 + +成功通过编译, 且无编译警告 + +共有测试数据:3 +平均占用内存:1.942K +平均CPU时间:0.00518S +平均墙钟时间:0.00516S + +测试数据 评判结果 +测试数据1 完全正确 +测试数据2 完全正确 +测试数据3 完全正确 diff --git a/04-0/README.md b/04-0/README.md new file mode 100644 index 0000000..ad44c4b --- /dev/null +++ b/04-0/README.md @@ -0,0 +1,3 @@ +# 第四章 循环结构 + +> 作业时间: 2021-11-03 22:56:00 至 2021-11-26 23:55:00 diff --git a/04/1/1.c b/04/1/1.c new file mode 100644 index 0000000..ae35b55 --- /dev/null +++ b/04/1/1.c @@ -0,0 +1,17 @@ +#include +#include + +int main(){ + int n,a=0,sum=0; + + scanf("%d",&n); + + for(int i=1;i<=n;i++){ + a=a*10+i; + sum+=a; + } + + printf("%d",sum); + + return 0; +} diff --git a/04/1/README.md b/04/1/README.md new file mode 100644 index 0000000..f793353 --- /dev/null +++ b/04/1/README.md @@ -0,0 +1,49 @@ +【问题描述】 + +编程题:求Sn=1+12+123+1234+… 之值,其中,项数n从键盘输入。 + +【输入形式】 + +3 + +【输出形式】 + +136 + +【样例输入】 + +4 + +【样例输出】 + +``` +**** +``` + +【样例输入】 + +10 + +【样例输出】 + +``` +********** +``` + +【样例说明】 + +【评分标准】 + +# 运行结果 + +成功通过编译, 且无编译警告 + +共有测试数据:3 +平均占用内存:1.941K +平均CPU时间:0.00448S +平均墙钟时间:0.00447S + +测试数据 评判结果 +测试数据1 完全正确 +测试数据2 完全正确 +测试数据3 完全正确 diff --git a/04/2/2.c b/04/2/2.c new file mode 100644 index 0000000..b9be193 --- /dev/null +++ b/04/2/2.c @@ -0,0 +1,18 @@ +#include + +int main() +{ + int n,a,max=0,min=2147483647; + + scanf("%d\n",&n); + + for(int i=1;i<=n;i++){ + scanf("%d",&a); + if(a>max)max=a; + if(a + +int main(){ + int n; + double a=1,sum=1; + + scanf("%d",&n); + + for(int i=1;i<=n;i++){ + a *= i; + sum += 1/a; + } + + printf("%.10lf",sum); + + return 0; +} diff --git a/04/3/README.md b/04/3/README.md new file mode 100644 index 0000000..06957fc --- /dev/null +++ b/04/3/README.md @@ -0,0 +1,49 @@ +【问题描述】 + +输入整数n(0<=n<=30),计算公式 1 + 1/1! + 1/2! +...+ 1/n!的值。 + +【输入形式】 + +从控制台输入整数n(0<=n<=30)。 + +【输出形式】 + +控制台输出公式结果:小数点后保留10位。 + +【样例输入】 + +12 + +【样例输出】 + +2.7182818283 + +【样例说明】 + +输入n为12,求得公式1 + 1/1! + 1/2! +... + 1/12!的值为2.7182818283,小数点后保留10位。 + +注意:为保证数据的准确性和一致性,请使用int或long类型保存阶乘的计算结果,用double数据类型计算和保存和的结果。 + +【测试数据,仅提供输入数据】 + +0 + +1 + +5 + +# 运行结果 + +成功通过编译, 且无编译警告 + +共有测试数据:5 +平均占用内存:1.980K +平均CPU时间:0.00572S +平均墙钟时间:0.00573S + +测试数据 评判结果 +测试数据1 完全正确 +测试数据2 完全正确 +测试数据3 完全正确 +测试数据4 完全正确 +测试数据5 完全正确 diff --git a/04/4/4.c b/04/4/4.c new file mode 100644 index 0000000..94fe98c --- /dev/null +++ b/04/4/4.c @@ -0,0 +1,27 @@ +#include + +int is(int number){ + int n,sum=0,old=number; + while(1){ + n = number % 10; + sum += n * n * n; + number /= 10; + if(number==0)break; + } + if(old==sum)return 1; + else return 0; +} +int main(){ + int m,n; + + printf("Input m: "); + scanf("%d",&m); + printf("Input n: "); + scanf("%d",&n); + + for(int i=m;i<=n;i++){ + if(is(i))printf("\n%d",i); + } + + return 0; +} diff --git a/04/4/README.md b/04/4/README.md new file mode 100644 index 0000000..c293cde --- /dev/null +++ b/04/4/README.md @@ -0,0 +1,36 @@ +【问题描述】 + +输入2 个正整数m 和n(1<=m,n<=1000),输出 `m~n` 之间的所有水仙花数。 + +水仙花数是指一个正整数的每一位上的数值的立方之和等于该正整数的数。 + +要求定义并调用函数is(number)判断number的各位数字之立方和是否等于其自身。 + +【输入形式】 + +输入2个正整数m 和n(1<=m,n<=1000) + +【输入输出样例1】(下划线部分表示输入) + +Input m: 100 + +Input n: 400 + +153 + +370 + +371 + +# 运行结果 + +成功通过编译, 且无编译警告 + +共有测试数据:2 +平均占用内存:1.943K +平均CPU时间:0.00575S +平均墙钟时间:0.00576S + +测试数据 评判结果 +测试数据1 完全正确 +测试数据2 完全正确 diff --git a/04/README.md b/04/README.md new file mode 100644 index 0000000..fac9071 --- /dev/null +++ b/04/README.md @@ -0,0 +1,25 @@ +# 实验四 循环结构(2学时) + +> 作业时间: 2021-11-03 22:55:00 至 2021-11-21 23:55:00 + +# 实验目的 + +1. 学会正确使用循环结构。 +2. 了解循环条件与程序流程的关系。 +3. 熟练掌握三类循环语句。 + +# 实验器材 + +计算机硬件环境:`PIII 667以上计算机;软件环境:Dev C++, Visual C++。` + +# 技能要点 + +1. while和do-while语句的使用; +2. for语句的使用; +3. 在循环结构中continue和break语句的作用; +4. 循环结构程序编写。 + +# 思考题 + +1. 循环结构中,循环结束条件如何设置? +2. 多重循环中如何正确确定各重循环体? diff --git a/README.md b/README.md index 0525922..0a75e85 100644 --- a/README.md +++ b/README.md @@ -33,3 +33,14 @@ A repo to record my study life. - [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) +- [第四章 循环结构](https://github.com/xtaodada/C-study/tree/master/04-0) + - [1. 【循环结构】用do---while语句实现循环,计算1+2+3+…+1000](https://github.com/xtaodada/C-study/tree/master/04-0/1) + - [2. 【循环结构】用for语句实现循环,计算1+1/2+1/3+1/4+...1/100 的和](https://github.com/xtaodada/C-study/tree/master/04-0/2) + - [3. 【循环结构】要求输出100~200之间的不能被3整除的前10个和最后10个整数](https://github.com/xtaodada/C-study/tree/master/04-0/3) + - [4. 【循环结构】使用循环的嵌套来输出以下4*5的矩阵](https://github.com/xtaodada/C-study/tree/master/04-0/4) + - [5. 【循环结构】输入一个大于3的整数n,判定它是否素数(prime,又称质数)](https://github.com/xtaodada/C-study/tree/master/04-0/5) +- [实验四 循环结构(2学时)](https://github.com/xtaodada/C-study/tree/master/04-1) + - [1. 【循环结构】求Sn=1+12+123+1234+… 之值,其中,累加项n从键盘输入](https://github.com/xtaodada/C-study/tree/master/04-1/1) + - [2. 【循环结构】找最大最小整数](https://github.com/xtaodada/C-study/tree/master/04-1/2) + - [3. 【循环结构】双重循环计算给定公式的值](https://github.com/xtaodada/C-study/tree/master/04-1/3) + - [4. 【循环结构】求两个正整数之间的水仙花数](https://github.com/xtaodada/C-study/tree/master/04-1/4)