C语言实验2:循环结构程序设计和数组

发布时间:2023年12月28日

目录

一、实验要求

二、实验内容

实验一:循环结构程序设计

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

文章来源:https://blog.csdn.net/weixin_58628068/article/details/135278124
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。