21.12.08

21.12.08,第1张

21.12.08

目录

 P1428 小鱼比可爱

P1427 小鱼的数字游戏

P5727 【深基5.例3】冰雹猜想

olol 宏定义可以在定义多个元素相等的数组时,简化 *** 作

 P1047 [NOIP2005 普及组] 校门外的树

olol memset函数 


 P1428 小鱼比可爱

P1428 小鱼比可爱 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P1428

#include
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
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
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
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
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
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
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

(3条消息) memset()函数及其作用_落叶随枫-CSDN博客_memsethttps://blog.csdn.net/qq_27522735/article/details/53374765?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163892288316780271924741%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163892288316780271924741&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-53374765.first_rank_v2_pc_rank_v29&utm_term=memset&spm=1018.2226.3001.4187

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5650711.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存