目录
P1428 小鱼比可爱
P1428 小鱼比可爱 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P1428
#include<iostream>
using namespace std;
int main() {
int arr[110]{}; // ans[100]{};
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> arr[i]; //int a;
//cin >> a;
//1.可以直接输入数组元素值 //arr[i] = a;
}
//取数据 比较(循环)
for (int i = 0; i < n; i++) {
int g = 0;
for (int k = 0; k < i; k++) {
if (arr[i] > arr[k])
g++;
}
cout << g << ' '; //ans[i] = g;
//2.可以直接输出g ,不用一直依赖于数组
}
//for (int i = 0; i < n; i++)
// cout << ans[i] << ' ';
return 0;
}
olol 给数组分配内存空间时
尽量大一点
以防止数组越界
P1427 小鱼的数字游戏
P1427 小鱼的数字游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P1427
#include<iostream>
using namespace std;
int main() {
unsigned int anr[110]{};
int i;
for (i = 0;;i++) {
cin >> anr[i];
if (anr[i] == 0)
break;
}
int start = 0;
int end = i - 1;
while (start < end) {
int temp;
temp = anr[start];
anr[start] = anr[end];
anr[end] = temp;
start++;
end--;
}
for (int k = 0; k < i; k++) {
cout << anr[k] << ' ';
}
return 0;
}
olol 做题不要固化思维
这题没有要求交换元素数值
只是要求输出
#include<iostream>
using namespace std;
int main() {
int i = 0,temp,anr[110];//默认为零
do {
cin >> temp; anr[i] = temp; i++;
} while (temp);
i--;
while (i--)
cout << anr[i] << ' ';
return 0;
}
错误代码
#include<iostream>
using namespace std;
int main() {
int anr[110];//默认为零
int i=0;
do {
cin >> anr[i++];
} while (anr[i]);
i--;
while (i--)
cout << anr[i] << ' ';
return 0;
}
P5727 【深基5.例3】冰雹猜想
P5727 【深基5.例3】冰雹猜想 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P5727已知变化次数不会超过200次
#include<iostream>
using namespace std;
#define MAXN 210 //宏定义
int main() {
long long i=0,n, ans[MAXN];
cin >> n;
ans[i] = n;
while (n != 1) {
if (n % 2)
n = n * 3 + 1;
else
n /= 2;
ans[++i] = n;
}
for (; i >= 0; i--) {
cout << ans[i] << ' ';
}
return 0;
}
olol 宏定义可以在定义多个元素相等的数组时,简化操作
如同时增减数组大小
“宏(Macro),是一种批量处理的称谓。计算机科学里的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。解释器或编译器在遇到宏时会自动进行这一模式替换……
宏定义_百度百科 (baidu.com)https://baike.baidu.com/item/%E5%AE%8F%E5%AE%9A%E4%B9%89/8711494(3条消息) 详解宏定义(#define)_yanggangclcsdn的博客-CSDN博客_宏定义
https://blog.csdn.net/yanggangclcsdn/article/details/49704089
P1047 [NOIP2005 普及组] 校门外的树
记录详情 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/record/64591496
#include<iostream>
using namespace std;
int main() {
int ans[11000]{},n,m,a,b,sum=0;
cin >>m >>n;
for (int i = 0; i <= m; i++) {
ans[i] = 1;
}
while (n--) {
cin >> a >> b;
for (int i = a; i <= b; i++) {
ans[i] = 0;
}
}
for (int i = 0; i <= m; i++) {
sum += ans[i];
}
cout << sum << endl;
return 0;
}
另一种:
#include<iostream>
using namespace std;
int main() {
int ans[10010]={0}, m, l , a, b, sum = 0;
//memset(ans, 0, sizeof(ans));
cin >> l >> m;
while (m--) {
cin >> a >> b;
for (int i = a; i <= b; i++)
ans[i] = 1;
}
for (int i = 0; i <= l; i++)
if (ans[i] == 0) sum++;
cout << sum << endl;
return 0;
}
olol memset函数
大致用法 memset(数组名称,0,sizeof(数组名称))
1.需要头文件 cstring
2.可以用于数组内的全部填充 0
3.数组int型 中间的一项只有是0 或者 -1时,数组的每一项才会变成 0 或者 -1