1、判断年份是否为闰年
实例要求从键盘输入任意年份的整数 N,通过程序运行判断该年份是否为闰年。
闰年判断逻辑:
year % 400 == 0:能被400整除的是闰年
year % 4 == 0 && year % 100 != 0:能被4整除但不能被100整除的是闰年
#include<iostream>
using namespace std;
bool judgeyear(int n)
{
if((n%400==0&&n%100==0) || n%4==0) return true;
else return false;
}
int main()
{
int year;
cin>>year;
if(judgeyear(year)==1) cout<<year<<"是闰年";
else cout<<year<<"不是闰年";
return 0;
}
2、矩阵转置
本实例是利用数组解决线性代数中的矩阵转置问题。
设有一矩阵为 m×n 阶(即 m 行 n 列),第 i 行 j 列的元素是 a(i,j),需要将该矩阵转置为 n×m 阶的矩阵,使其中元素满足 b(j,i)=a(i,j)。
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int m, n;
cin >> m >> n;
// 使用vector自动管理内存
vector<vector<int> > a(m, vector<int>(n));
vector<vector<int> > b(n, vector<int>(m));
// 输入矩阵
for(int i = 0; i < m; i++)
{
for(int j = 0; j < n; j++)
{
cin >> a[i][j];
}
}
// 转置矩阵
for(int i = 0; i < n; i++)
{
for(int j = 0; j < m; j++)
{
b[i][j] = a[j][i];
}
}
// 输出转置矩阵
cout << "转置矩阵为:" << endl;
for(int i = 0; i < n; i++)
{
for(int j = 0; j < m; j++)
{
cout << b[i][j] << " ";
}
cout << endl;
}
return 0;
}
创建 vector
// 创建空vector
vector<int> v1;// 创建指定大小的vector(默认值初始化)
vector<int> v2(10); // 10个元素,都是0// 创建指定大小并初始化所有元素
vector<int> v3(5, 100); // 5个元素,都是100// 使用列表初始化(C++11及以上)
vector<int> v4 = {1, 2, 3, 4, 5};// 从数组创建
int arr[] = {1, 2, 3};
vector<int> v5(arr, arr + 3); // 包含1,2,3// 拷贝构造
vector<int> v6(v4); // 复制v4的所有元素
二维 vector(矩阵)
// 创建 m行 n列的二维vector
int m = 3, n = 4;// 方法1:创建空矩阵,然后resize
vector<vector<int>> mat1;
mat1.resize(m, vector<int>(n));// 方法2:直接创建并初始化所有元素为0
vector<vector<int>> mat2(m, vector<int>(n));// 方法3:创建并初始化所有元素为特定值
vector<vector<int>> mat3(m, vector<int>(n, 0)); // 所有元素为0
vector<vector<int>> mat4(m, vector<int>(n, 5)); // 所有元素为5// 方法4:使用列表初始化
vector<vector<int>> mat5 = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};

208

被折叠的 条评论
为什么被折叠?



