学习日志(七)
数组
一. 冒泡排序通过对待排序序列从前向后,依次比较相邻元素的值,若发现逆序则交换,使值大的元素逐渐从前向后移动。
例:
#include <stdio.h>
int main() {
int a[10]={3,1,4,5,2};
for (int i=1;i<=4;i++) {
for (int j=0;j<5-i;j++) {
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for (int i=0;i<5;i++) {
printf ("%d",a[i]);
}
return 0;
}
二. 打印杨辉三角(应用二维数组)
#include <stdio.h>
int main() {
int a[10][10],i,j;
for (i=0;i<10;i++) {
a[i][0]=1;
a[i][i]=1;
}
for (i=2;i<10;i++) {
for (j=1;j<i;j++) {
a[i][j]=a[i-1][j]+a[i-1][j-1];
for (i=0;i<10;i++) {
for (j=0;j<=i;j++) {
printf ("%5d",a[i][j]);
printf ("\n");
}
return 0;
}
三. 计算鞍点 (其他同学的代码)
// #pragma GCC optimize(2) 这是一条针对GCC编译器的编译优化指令,这里的 optimize(2) 表示启用一定级别的 优化策略,目的是让生成的可执行代码在运行效率等方面有更好的表现
#include <bits/stdc++.h> 万能头文件
usingnamespacestd;
#define int long long
#define endl '\n'
signedmain()
{
ios::sync_with_stdio(false); ios::sync_with_stdio(false); 这行代码是为了取消C++ 中 cin/cout 和 stdi o (C语言的标准输入输出函数)之间的同步,在大量输入输出的情况下能提升一定
效率。
cin.tie(0); 和 cout.tie(0); 分别解除 cin 和 cout 之间的绑定关系,进 一步优化输入输出的性能。
cin.tie(0);
cout.tie(0);
intn, m;
cin >> n >> m;
vector<vector<int>> vec(n, vector<int>(m)); 定义了一个名为 vec 的二维向量,其大小为 n 行 m 列,并且 初始元素值是默认初始化(对于 int 类型也就是0)。
for(auto &vec1 : vec)
{
for(auto &&i : vec1)
{
cin >> i;
}
}
intnum;
cin >> num;
cout << accumulate(vec[num - 1].begin(), vec[num - 1].end(), 0); 使用 accumulate 函数(它来自 <algorit } hm> 头文件,由于包含了 <bits/stdc++.h > 所以可以直接使用),计算并输出二维 向量 vec 中索引为 num - 1 这一行所有 元素的总和, accumulate 函数的第三个参 数 0 表示初始累加值为0,第一个元素开始 依次累加直到最后一个元素