目录
掌握循环和数组
目标:通过实践掌握循环结构的使用和应用,加深对循环控制语句的理解。
原理:循环结构程序设计是通过使用循环控制语句(如for循环、while循环等)来重复执行一段代码块,以达到特定的目的。在实验中,通过选择适当的循环类型和循环条件,可以实现对一系列数字的遍历、求和、求平均值等操作。
要求:
编写一个程序,计算并输出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到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到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类型
目标:学习数组的定义、初始化和使用,掌握数组在程序中的应用。
要求:
定义一个整型数组,包含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]
编写一个程序,定义一个字符数组,包含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型数组
编写一个程序,定义一个浮点型数组,包含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型数组
目标:综合运用循环结构和数组解决实际问题。
要求:
编写一个程序,从键盘输入学生的成绩,使用循环结构将成绩存储到数组中,然后计算平均成绩并输出。
#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个,可以将数组扩大,但不能特别大,防止空间浪费,也有一一种动态分配数组,感兴趣的童鞋可以参考下面这篇博客
编写一个程序,从键盘输入一组整数,使用循环结构将其存储到数组中,然后找出数组中的最大值和最小值,并输出。
#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