20250226-Rain
1. 简单循环
/*
1. 求平均年龄
01星球有学长若干名, 给出每个学长的年龄, 求01星球学长的平均年龄, 保留小数点后两位
*/
#include <iostream>
#include <ios>
#include <iomanip>
using namespace std;
int main(void)
{
int n;
int a;
int sum = 0;
cout << "Please input 'n': " << endl;
cin >> n;
// 非法输入,报错退出
if (n <= 1 || n >= 100) {
cerr << "Error: n must be in the range (1, 100)" << endl;
return 1;
}
cout << "Please input 'a'(enter to separate): " << endl;
for(int i = 0; i < n; i++)
{
cin >> a;
sum = sum + a;
}
// 格式化输入输出
cout << fixed << setprecision(2) << double(sum) / n;
return 0;
}
2. 嵌套循环
/*
3. 打印菱形
输入菱形的边长n, 打印一个对应大小的菱形
(1<n<100)
输入:5
输出:
*
***
*****
*******
*********
*******
*****
***
*
*/
#include <iostream>
using namespace std;
int main(void)
{
int n;
cout << "Please input 'n':" << endl;
cin >> n;
// 非法输入,报错退出
if (n <= 1 || n >= 100)
{
cerr << "Error: n must be in the range (1, 100)" << endl;
return 1;
}
// 打印菱形的上半部分
// 前 n - 1 行
for (int i = 1; i < n; i++) // 控制打印行数
{
// 根据当前行数 i 控制打印空格,并且空格数递减
for (int j = 1; j <= n - i; j++)
{
cout << " ";
}
// 根据当前行数 i 控制打印 * ,并且 * 数递增
for (int k = 1; k <= 2 * i - 1; k++)
{
cout << "*";
}
cout << endl;
}
// 打印菱形的中间一行
// 第 n 行
// 仅包含 2*n-1 个 *
for (int k = 0; k < 2 * n - 1; k++)
{
cout << "*";
}
cout << endl;
// 打印菱形的下半部分
// 后 n - 1 行
for (int i = n - 1; i >= 1; i--) // 控制打印行数
{
// 根据当前行数 i 控制打印空格,并且空格数递增
for (int j = 1; j <= n - i; j++)
{
cout << " ";
}
// 根据当前行数 i 控制打印 * ,并且 * 数递减
for (int k = 1; k <= 2 * i - 1; k++)
{
cout << "*";
}
cout << endl;
}
return 0;
}
3. 简单循环
/*
3. 打印菱形
输入菱形的边长n, 打印一个对应大小的菱形
(1<n<100)
输入:5
输出:
*
***
*****
*******
*********
*******
*****
***
*
*/
#include <iostream>
using namespace std;
void print_top(int n)
{
// 打印菱形的上半部分
// 前 n - 1 行
for (int i = 1; i < n; i++) // 控制打印行数
{
// 根据当前行数 i 控制打印空格,并且空格数递减
for (int j = 1; j <= n - i; j++)
{
cout << " ";
}
// 根据当前行数 i 控制打印 * ,并且 * 数递增
for (int k = 1; k <= 2 * i - 1; k++)
{
cout << "*";
}
cout << endl;
}
}
void print_mid(int n)
{
// 打印菱形的中间一行
// 第 n 行
// 仅包含 2*n-1 个 *
for (int i = 0; i < 2 * n - 1; i++)
{
cout << "*";
}
cout << endl;
}
void print_bottom(int n)
{
// 打印菱形的下半部分
// 后 n - 1 行
for (int i = n - 1; i >= 1; i--) // 控制打印行数
{
// 根据当前行数 i 控制打印空格,并且空格数递增
for (int j = 1; j <= n - i; j++)
{
cout << " ";
}
// 根据当前行数 i 控制打印 * ,并且 * 数递减
for (int k = 1; k <= 2 * i - 1; k++)
{
cout << "*";
}
cout << endl;
}
}
int main(void)
{
int n;
cout << "Please input 'n':" << endl;
cin >> n;
// 非法输入,报错退出
if (n <= 1 || n >= 100)
{
cerr << "Error: n must be in the range (1, 100)" << endl;
return 1;
}
print_top(n);
print_mid(n);
print_bottom(n);
return 0;
}
Last updated