目录
一、实验要求
二、实验内容
实验一:循环结构程序设计
1.1
代码
截图
分析
1.2
代码
截图
分析
1.3
代码
截图
分析
实验二:数组
2.1
代码
截图
分析
2.2
代码
截图
分析
2.3
代码
截图
分析
实验三:循环结构和数组的综合应用
3.1
代码
截图
分析
3.2
代码
截图
分析
3.3
代码
截图
分析
一、实验要求
掌握循环和数组
二、实验内容
实验一:循环结构程序设计
目标:通过实践掌握循环结构的使用和应用,加深对循环控制语句的理解。
原理:循环结构程序设计是通过使用循环控制语句(如for循环、while循环等)来重复执行一段代码块,以达到特定的目的。在实验中,通过选择适当的循环类型和循环条件,可以实现对一系列数字的遍历、求和、求平均值等操作。
要求:
1.1
编写一个程序,计算并输出1到100之间所有偶数的和。
代码
#include<iostream>
using namespace std;
int main() {int sum = 0;for (int i = 2; i <= 100; i += 2) {sum += i;}cout << sum;return 0;
}
截图
分析
一般设置变量sum来储存累加值
for循环中首先设置初始量,其次设置条件,不满足条件则会跳出循环,第三个条件是变量的变化规律,根据条件设置。
由于题目要求不超过100,且是偶数,所以要求i<=100
相邻偶数之间差2,所以应该每次加2
sum+=i等价于sum=sum+2,只是一个缩写形式
1.2
编写一个程序,输出1到10之间的所有整数的平方。
代码
#include<iostream>
using namespace std;
int main() {for (int i = 1; i <= 10; i++) {cout << i * i << " ";}return 0;
}
截图
分析
这里的初值应该设为1,因为从1开始
条件是到10为止,因此不能超过10.应当设置i<=10
从1到10,每个相邻的数+1
cout行中“ ”表示输出若干空格符,用于输出时数字与数字之间有间隙,美观,如果换行应该cout<<endl
1.3
编写一个程序,求解1到100之间所有能被3整除的数的平均值。
代码
#include<iostream>
using namespace std;
int main() {int sum = 0, count = 0;for (int i = 1; i <= 100; i++) {if (i % 3 == 0) {//可以被3整除sum += i;count++;}}float average;average = float(sum) / float(count);cout << average;return 0;
}
截图
分析
sum用来储存和,count用来储存共有多少个可以被3整除的数,初值应该都是0
从1到100,则i初值应该为1,不能大于100,且每次加1
能被3整除,说明与3的余数应该为0
由于平均值要尽可能精准,则不能用int,而采用float
但是只有相同类型数据才能进行四则运算,则要对sum和count进行强制数据类型转换,就是float(),转化成float类型
实验二:数组
目标:学习数组的定义、初始化和使用,掌握数组在程序中的应用。
要求:
2.1
定义一个整型数组,包含5个元素,然后编写程序,输入5个整数并存储到数组中,最后输出数组中的所有元素。
代码
#include<iostream>
using namespace std;
int main() {int a,A[5];for (int i = 0; i < 5; i++) {cin >> a;A[i] = a;}for (int i = 0; i < 5; i++) {cout << A[i]<<endl;}return 0;
}
截图
分析
对于数组的定义,若只是普通的一维数组,定义n个数就A[n]
但是数组是从0即A[0]开始的,以A[n-1]为止,共n个数。
题目要求输入5个数,则A[5]
2.2
编写一个程序,定义一个字符数组,包含10个元素,然后使用循环结构输入10个字符,并存储到数组中,最后输出数组中的所有元素。
代码
#include<iostream>
using namespace std;
int main() {char a,A[5];for (int i = 0; i < 5; i++) {cin >> a;A[i] = a;}for (int i = 0; i < 5; i++) {cout << A[i]<<endl;}return 0;
}
截图
分析
相比于上面,只是将int型数组改为char型数组
2.3
编写一个程序,定义一个浮点型数组,包含10个元素,然后输入10个浮点数并存储到数组中,计算数组中所有元素的和并输出。
代码
#include<iostream>
using namespace std;
int main() {float a,A[5];for (int i = 0; i < 5; i++) {cin >> a;A[i] = a;}for (int i = 0; i < 5; i++) {cout << A[i]<<endl;}return 0;
}
截图
分析
相比于上面,只是将int型数组改为float型数组
实验三:循环结构和数组的综合应用
目标:综合运用循环结构和数组解决实际问题。
要求:
3.1
编写一个程序,从键盘输入学生的成绩,使用循环结构将成绩存储到数组中,然后计算平均成绩并输出。
代码
#include<iostream>
using namespace std;
int main() {int sum = 0,number,A[100];cout << "请输入学生数:";cin >> number;for (int i = 0; i < number; i++) {cin >> A[i];sum += A[i];}float average = float(sum) / float(number);cout << average;return 0;
}
截图
分析
这一题看起来比较综合性,实质是1.3与2.1的结合,并不复杂
至于为什么设置A[100],而不是其他大小的数组,是因为要考虑到实际需要,学生数可能不超过100个,如果可能超过100个,可以将数组扩大,但不能特别大,防止空间浪费,也有一一种动态分配数组,感兴趣的童鞋可以参考下面这篇博客
【C语言进阶篇】动态内存分配和数组的动态内存分配_c语言动态内存分配二维数组-CSDN博客
3.2
编写一个程序,从键盘输入一组整数,使用循环结构将其存储到数组中,然后找出数组中的最大值和最小值,并输出。
代码
#include<iostream>
using namespace std;
int main() {int number,A[100],max=-999,min=999;cout << "请输入所需要的数字数:";cin >> number;for (int i = 0; i < number; i++) {cin >> A[i];if (A[i] < min) {min = A[i];}if (A[i] > max) {max = A[i];}}cout << "最大值为:" << max << endl;cout << "最小值为:" << min;return 0;
}
截图
分析
max设置那么小,min设置那么大,懂得都懂,和上述设置数组大小原理相同
只需要通过if来判断当前输入的值是否是更大或更小的值,从而更新max与min