“小朋友们,我们已经学会了用while循环处理输入序列,现在让我们看看用for循环如何完成同样的任务!”
🔬 **实验36:奇偶数统计与求和(for版)**
“`
描述:
用for循环统计一组数中奇数和偶数的情况。
输入:
第一行输入一个正整数n,表示要输入的数的个数
接下来n行,每行一个整数
输出:
奇数和偶数的个数及它们的和
样例输入:
5
1
2
3
4
5
样例输出:
奇数有3个,和是9
偶数有2个,和是6
解题思路:
1. 用for循环控制输入次数
2. 用四个变量记录统计结果:
– 奇数计数和求和
– 偶数计数和求和
“`
“`cpp
#include
using namespace std;
int main() {
int n;
cout << "请输入要处理的数字个数:";
cin >> n;
int odd_count = 0, even_count = 0;
int odd_sum = 0, even_sum = 0;
for(int i = 0; i < n; i++) { int num; cout << "请输入第" << i+1 << "个数:"; cin >> num;
if(num % 2 == 0) { // 偶数
even_count++;
even_sum += num;
} else { // 奇数
odd_count++;
odd_sum += num;
}
}
cout << "奇数有" << odd_count << "个,和是" << odd_sum << endl;
cout << "偶数有" << even_count << "个,和是" << even_sum << endl;
return 0;
}
```
🔬 **实验37:特殊倍数统计(for版)**
```
描述:
用for循环统计一组数中是8的倍数但不是9的倍数的数的个数。
输入:
第一行输入一个正整数n
接下来n行,每行一个整数
输出:
符合条件的数的个数
样例输入:
5
8
16
24
27
32
样例输出:
符合条件的数有:8 16 32
共3个数
解题思路:
1. 用for循环控制输入次数
2. 判断每个输入的数是否:
- 能被8整除
- 不能被9整除
```
```cpp
#include
using namespace std;
int main() {
int n;
cout << "请输入要处理的数字个数:";
cin >> n;
int count = 0;
cout << "符合条件的数有:";
for(int i = 0; i < n; i++) {
int num;
cout << "请输入第" << i+1 << "个数:";
cin >> num;
if(num % 8 == 0 && num % 9 != 0) {
cout << num << " ";
count++;
}
}
cout << "\n共" << count << "个数" << endl;
return 0;
}
```
🔬 **实验38:数字查找(for版)**
```
描述:
用for循环在一组数中查找指定数字m出现的次数。
输入:
第一行输入两个正整数n和m,n表示要输入的数的个数,m表示要查找的数
接下来n行,每行一个整数
输出:
数字m出现的次数
样例输入:
6 3
1
3
3
2
3
4
样例输出:
数字3出现了3次
解题思路:
1. 用for循环控制输入次数
2. 用计数器记录m出现的次数
3. 每次输入后与m比较
```
```cpp
#include
using namespace std;
int main() {
int n, m;
cout << "请输入要处理的数字个数和要查找的数:";
cin >> n >> m;
int count = 0;
for(int i = 0; i < n; i++) { int num; cout << "请输入第" << i+1 << "个数:"; cin >> num;
if(num == m) {
count++;
}
}
cout << "数字" << m << "出现了" << count << "次" << endl;
return 0;
}
```
🔬 **实验39:平均值计算(for版)**
```
描述:
用for循环计算一组数的平均值。
输入:
第一行输入一个正整数n
接下来n行,每行一个整数
输出:
这组数的平均值,保留两位小数
样例输入:
4
10
20
30
40
样例输出:
平均值是:25.00
解题思路:
1. 用for循环控制输入次数
2. 用sum累加所有输入的数
3. 最后计算平均值
```
```cpp
#include
#include
using namespace std;
int main() {
int n;
cout << "请输入要处理的数字个数:";
cin >> n;
double sum = 0;
for(int i = 0; i < n; i++) {
int num;
cout << "请输入第" << i+1 << "个数:";
cin >> num;
sum += num;
}
cout << fixed << setprecision(2);
cout << "平均值是:" << sum/n << endl;
return 0;
}
```
🔬 **实验40:完全平方数统计(for版)**
```
描述:
用for循环统计一组数中完全平方数的个数。
输入:
第一行输入一个正整数n
接下来n行,每行一个正整数
输出:
完全平方数的个数
样例输入:
5
4
7
9
10
16
样例输出:
完全平方数有:4 9 16
共3个数
解题思路:
1. 用for循环控制输入次数
2. 判断每个输入的数是否是完全平方数:
- 计算平方根
- 判断平方根的平方是否等于原数
```
```cpp
#include
#include
using namespace std;
int main() {
int n;
cout << "请输入要处理的数字个数:";
cin >> n;
int count = 0;
cout << "完全平方数有:";
for(int i = 0; i < n; i++) {
int num;
cout << "请输入第" << i+1 << "个数:";
cin >> num;
int root = sqrt(num);
if(root * root == num) {
cout << num << " ";
count++;
}
}
cout << "\n共" << count << "个数" << endl;
return 0;
}
```
🔬 **实验41:立方数统计(for版)**
```
描述:
用for循环统计一组数中立方数的个数。
输入:
第一行输入一个正整数n
接下来n行,每行一个正整数
输出:
立方数的个数
样例输入:
5
8
10
27
30
64
样例输出:
立方数有:8 27 64
共3个数
解题思路:
1. 用for循环控制输入次数
2. 判断每个输入的数是否是立方数:
- 计算立方根
- 判断立方根的立方是否等于原数
```
```cpp
#include
#include
using namespace std;
int main() {
int n;
cout << "请输入要处理的数字个数:";
cin >> n;
int count = 0;
cout << "立方数有:";
for(int i = 0; i < n; i++) {
int num;
cout << "请输入第" << i+1 << "个数:";
cin >> num;
int root = round(cbrt(num));
if(root * root * root == num) {
cout << num << " ";
count++;
}
}
cout << "\n共" << count << "个数" << endl;
return 0;
}
```