第四章 循环结构

This commit is contained in:
xtaodada 2021-11-05 00:59:48 +08:00
parent 9dd4e96f20
commit 2435d6890a
No known key found for this signature in database
GPG Key ID: EE4DC37B55E24736
21 changed files with 575 additions and 0 deletions

14
04-0/1/1.c Normal file
View File

@ -0,0 +1,14 @@
#include<stdio.h>
int main(){
int sum=0,a=0;
do{
sum+=a;
a++;
}while(a<=1000);
printf("sum=%d",sum);
return 0;
}

29
04-0/1/README.md Normal file
View File

@ -0,0 +1,29 @@
【问题描述】
用do---while语句实现循环计算1+2+3+…+1000 。
【输入形式】
【输出形式】
【样例输入】
【样例输出】
sum=*******
【样例说明】
【评分标准】
# 运行结果
成功通过编译, 且无编译警告
共有测试数据:1
平均占用内存:1.898K
平均CPU时间:0.00710S
平均墙钟时间:0.00717S
测试数据 评判结果
测试数据1 完全正确

14
04-0/2/2.c Normal file
View File

@ -0,0 +1,14 @@
#include<stdio.h>
int main()
{
float sum=0,a=1;
for(;a<=100;a++){
sum+=1/a;
}
printf("sum=%.4f",sum);
return 0;
}

33
04-0/2/README.md Normal file
View File

@ -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 完全正确

16
04-0/3/3.c Normal file
View File

@ -0,0 +1,16 @@
#include<stdio.h>
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;
}

31
04-0/3/README.md Normal file
View File

@ -0,0 +1,31 @@
【问题描述】
要求输出100200之间的不能被3整除的前10个和最后10个数。
对100到200之间的每一个整数进行检查如果不能被3整除输出否则不输出
无论是否输出此数,都要接着检查下一个数(直到200为止)。
【输入形式】
【输出形式】
【样例输入】
【样例输出】
【样例说明】
【评分标准】
# 运行结果
成功通过编译, 且无编译警告
共有测试数据:1
平均占用内存:1.898K
平均CPU时间:0.00707S
平均墙钟时间:0.00708S
测试数据 评判结果
测试数据1 完全正确

11
04-0/4/4.c Normal file
View File

@ -0,0 +1,11 @@
#include<stdio.h>
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;
}

41
04-0/4/README.md Normal file
View File

@ -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 完全正确

16
04-0/5/5.c Normal file
View File

@ -0,0 +1,16 @@
#include<stdio.h>
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;
}

43
04-0/5/README.md Normal file
View File

@ -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 完全正确

3
04-0/README.md Normal file
View File

@ -0,0 +1,3 @@
# 第四章 循环结构
> 作业时间: 2021-11-03 22:56:00 至 2021-11-26 23:55:00

17
04/1/1.c Normal file
View File

@ -0,0 +1,17 @@
#include<stdio.h>
#include<math.h>
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;
}

49
04/1/README.md Normal file
View File

@ -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 完全正确

18
04/2/2.c Normal file
View File

@ -0,0 +1,18 @@
#include<stdio.h>
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<min)min=a;
}
printf("%d %d",max,min);
return 0;
}

75
04/2/README.md Normal file
View File

@ -0,0 +1,75 @@
【问题描述】
编写一个程序,用户输入若干整数,试找出其中的最大数和最小数。
【输入形式】
用户在第一行待输入数据个数,在第二行输入数据。
【输出形式】
程序在下一行输出数据的最大值和最小值
【样例输入】
```
5
89 62 96 74 52
```
【样例输出】
96 52
【样例说明】
用户第一次输入的为数据个数在下一行依次输入数据。输出为5个数中的最大值和最小值输出时候两个数之间用空格分隔。
【5组测试数据仅提供输入信息其程序运行结果将与正确答案进行匹配来判分】
```
9
1 2 78 5 8 6 6 9 7
5
89 62 96 74 52
1
5
2
3 5
6
123 456 769 0 -58 24
```
# 运行结果
成功通过编译, 且无编译警告
共有测试数据:5
平均占用内存:1.942K
平均CPU时间:0.00491S
平均墙钟时间:0.00490S
测试数据 评判结果
测试数据1 完全正确
测试数据2 完全正确
测试数据3 完全正确
测试数据4 完全正确
测试数据5 完全正确

17
04/3/3.c Normal file
View File

@ -0,0 +1,17 @@
#include<stdio.h>
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;
}

49
04/3/README.md Normal file
View File

@ -0,0 +1,49 @@
【问题描述】
输入整数n0<=n<=30计算公式 1 + 1/1! + 1/2! +...+ 1/n!的值。
【输入形式】
从控制台输入整数n0<=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 完全正确

27
04/4/4.c Normal file
View File

@ -0,0 +1,27 @@
#include<stdio.h>
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;
}

36
04/4/README.md Normal file
View File

@ -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 完全正确

25
04/README.md Normal file
View File

@ -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. 多重循环中如何正确确定各重循环体?

View File

@ -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. 【循环结构】要求输出100200之间的不能被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)