C++指针小练习

news2024/12/24 21:07:33

双色球统计1-33个数字出现的次数(很详细)

做这个题一定要注意审题:题目要求是统计1-33个数字出现的次数,而不是前六个数字出现的次数

算法设计:

①:用一个数组p1来保存每一行的数据,再用一个数组p2来遍历1-33个数字,因为是要统计这33个数字出现的次数所以将数组初始化为0,

②:通过初始化同一个变量来保存(0-32个数字),然后再将这个变量作为p2数组的下标,实现同一个下标相加的时候就是在确定该数出现的次数

③:怎么确定变量的值,就是用数组p1的值减1就可以作位变量的值,(因为数组p1是1-33个数组的随机值,所以他减1就是在设置1-33个数据的下标)然后再遍历p1这个数组的时候,就可以为变量重复赋值

运行的结果:

注:出现的结果中第一个球,并不是文件中的第一个数字,而是值为1的数字

#include <iostream>
#include <assert.h>
#include <fstream>
#include <string>

using namespace std;
#define NUM 7

bool statius(const char* path, int* ball_33, int len) {
	int ball_7[NUM];//用一个数组p1来保存每一行的数据,
	ifstream file;
	
	file.open(path);
	
	if (!path){
		return false;
	}
	if (file.fail()){

		cerr << "文件打开错误!" << strerror(sizeof(file)) << endl;
	}

	do{
		int i;
		for (i = 0; i < NUM; i++) {
			file >> ball_7[i];
			if (file.eof()) {
				break;
			}
			if (file.fail()) {
				cerr << "数据读取失败!" << strerror(errno) << endl;
				break;
			}
		}
		
		if (i == 0)break;
		if (i < NUM) {
			cout << "不满预计的7个数" << endl;
			continue;
		}
		for (i = 0; i < NUM; i++) {
			cout << ball_7[i]<<" ";
		}
		cout << endl;
		for (int i = 0; i < NUM; i++){//循环为变量赋值
            //就是用数组p1的值减1就可以作位变量的值,(因为数组p1是1-33个数组的随机值,所以他减1
            //就是在设置1-33个数据的下标)然后再遍历p1这个数组的时候,就可以为变量重复赋值
			int index = *(ball_7 + i)-1;
			if (index >= 0 && index < len) {
                //通过初始化同一个变量来保存(0-32个数字),然后再将这个变量作为p2数组的下标,实                   
                //现同一个下标相加的时候就是在确定该数出现的次数
				*(ball_33 + index) += 1;//用变量作为数组p2的下标
			}
		}

	} while (1);
	file.close();
	return true;
}

int main(void) {
	string filename;
    //再用一个数组p2来遍历1-33个数字,因为是要统计这33个数字出现的次数所以将数组初始化为0,
	int ball_33[33] = { 0 };

	cout << "please input you filename:" << endl;
	cin >> filename;
	

	//将文件名传入函数
	if (!statius(filename.c_str(), ball_33, 33)) {
		cerr << "统计错误!" << endl;
		exit(-1);
	}

	for (int i = 0; i < 33; i++)
	{
		cout <<"第"<<i+1<<"个球出现的次数:" << *(ball_33 + i) << " " << endl;
	}
	return 0;
}

 实现含有中文字符的字符串逆转,如: “我是小萌新” 转换成“新萌小是我”

#include <iostream>

using namespace std;
/*
1. 实现含有中文字符的字符串逆转,如: “我是小萌新” 转换成“新萌小是我”
*/
int main(void) {
	string str = "我是小萌新";

	int len = str.length();
	cout << str << endl;
	for (int i = 0; i < str.length() / 2; i += 2, len -= 2) {
		int ret = str[i];
		str[i] = str[len - 2];
		str[len - 2] = ret;

		ret = str[i + 1];
		str[i + 1] = str[len - 1];
		str[len - 1] = ret;
	}
	cout << str << endl;
	return 0;
}

有一个整形数组, a[3] = {7,2,5}, 要求使用指针实现数组成员由小到大的顺序排列,即 结果为:a[3] = {2,5,7};

#include <iostream>

using namespace std;
/*
有一个整形数组, a[3] = {7,2,5}, 要求使用指针实现数组成员由小到大的顺序排列,
即 结果为:a[3] = {2,5,7};

*/
int main(void) {
	int a[3] = { 7,2,5 };

	for (int i = 0; i < sizeof(a)/sizeof(int); i++){
		for (int j = 0; j < sizeof(a) / sizeof(int); j++)
		{
			if (a[i] < a[j]) {
				int tmp = a[i];
				a[i] = a[j];
				a[j] = tmp;
			}
		}
	}
	for (int i = 0; i < sizeof(a) / sizeof(int); i++)
	{
		cout << a[i] << " ";
	}
	return 0;
}

 实现一个函数,函数完成如下功能:
1.函数的输入为一个数组,数组的成员个数不定(即:可能为 0 个,也可能为多个)
2.函数找到成员的最大元素和最小元素,并能让函数的调用者知道最大元素和最小元素
是哪一个

#include <iostream>

using namespace std;
/*
实现一个函数,函数完成如下功能:
1.函数的输入为一个数组,数组的成员个数不定(即:可能为 0 个,也可能为多个)
2.函数找到成员的最大元素和最小元素,并能让函数的调用者知道最大元素和最小元素
是哪一个

*/

void select(int a[] ,int len,int **max,int **min) {

	for (int i = 0; i < len; i++) {
		for (int j = 0; j < len; j++)
		{
			if (a[i] < a[j]) {
				int tmp = a[i];
				a[i] = a[j];
				a[j] = tmp;
			}
		}
	}
	*max = &a[len-1];
	*min = &a[0];
}

int main(void) {
	int arr[] = { 1,3,2,1,2,3,4,5,6,8,0,4,1 };
	int* max = NULL;
	int* min = NULL;
	
	int len = sizeof(arr) / sizeof(int);

	select(arr, len, &max, &min);

	cout << "最大值:" << *max << " 最小值:" << *min;
	return 0;
}

 实现一个函数,使用指针连接两个字符串。

函数输入: 两个源字符串的指针,目的字符串的指针

 

#include <iostream>

using namespace std;
/*
实现一个函数,使用指针连接两个字符串。
函数输入: 两个源字符串的指针,目的字符串的指

int extern_a = 10;
*/

int cat(char * str,char *str1, char* p[]) {
	int i = 0; 
	int k = 0;
	while (str[i]!=0){
		p[i] = &str[i];
		i++;
	}
	while (str1[k]!=0){
		p[i] = &str1[k];
		i++;
		k++;
	}
	for (int i = 0; i < sizeof(p)/sizeof(char); i++) {
		cout << *p[i];
	}
	int len = sizeof(p) / sizeof(char);
	return len;
}

int main(void) {
	char str[50];
	char str1[50];
	char str2[100];
	char* p[100];
	for (int i = 0; i < 100; i++){
		p[i] = &str2[i];
	}
	cout << "请输入第一个字符串:" << endl;
	cin >> str;
	rewind(stdin);
	cout << "请输入第二个字符串:" << endl;
	cin >> str1;
	
	int len = cat(str, str1, p);
	cout << endl;
	for (int i = 0; i < len; i++) {
		cout << *p[i];
	}
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1374176.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷⑦

2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷7 目录 需要竞赛软件包环境以及备赛资源可私信博主&#xff01;&#xff01;&#xff01; 2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷7 模块一 …

建模软件Rhinoceros mac介绍说明

Rhinoceros mac是一款3D设计软件“犀牛”&#xff0c;在当今众多三维建模软件中&#xff0c;Rhinoceros 版因为其体积小、功能强大、对硬件要求低而广受欢迎&#xff0c;对于专业的3D设计人员来说它是一款不错的3D建模软件&#xff0c;Rhinoceros Mac中文版能轻易整合3DS MAX与…

关于对象存储的若干事

引言 最近在阅读鸣嵩的一篇文章&#xff0c;数据库的下一场革命&#xff1a;S3 延迟已降至原先的 10%&#xff0c;云数据库架构该进化了 收获很多&#xff0c;过去时间也基于对象存储做过一些功能实现&#xff0c;特记录下。关于鸣嵩&#xff1a; 曹伟&#xff0c;花名鸣嵩&am…

Python爬虫—requests模块简单应用

Python爬虫—requests模块简介 requests的作用与安装 作用&#xff1a;发送网络请求&#xff0c;返回响应数据 安装&#xff1a;pip install requests requests模块发送简单的get请求、获取响应 需求&#xff1a;通过requests向百度首页发送请求&#xff0c;获取百度首页的…

2023 年度总结—总结我今年的AI之路-多项目实战经验谈AI发展前景

各位好&#xff0c;我是难忘&#xff0c;对人工智能方向有所研究&#xff0c;今年一年除了开发了几个软件项目之外的时间&#xff0c;基本都用到了学习研究AI上&#xff0c;最近几个月也是产出了几款AI领域的爆火文章&#xff0c;也把自己学习AI的笔记写了一个专栏&#xff0c;…

共融共生:智慧城市与智慧乡村的协调发展之路

随着科技的飞速发展和全球化的不断深入&#xff0c;智慧城市和智慧乡村作为现代社会发展的重要组成部分&#xff0c;正逐渐成为人们关注的焦点。然而&#xff0c;在追求经济发展的过程中&#xff0c;城乡发展不平衡的问题也日益凸显。因此&#xff0c;如何实现智慧城市与智慧乡…

FAST OS DOCKER 可视化Docker管理工具

介绍 FAST OS DOCKER 界面直观、简洁&#xff0c;非常适合新手使用&#xff0c;方便大家轻松上手 docker部署运行各类有趣的容器应用&#xff0c;同时 FAST OS DOCKER 为防止服务器负载过高&#xff0c;进行了底层性能优化&#xff1b;其以服务器安全为基础&#xff0c;对其进…

基于elementUI的el-table组件实现按住某一行数据上下滑动选中/选择或取消选中/选择鼠标经过的行

实现代码 <template><div :class"$options.name"><el-tablestyle"user-select: none"ref"table":data"tableData":row-class-name"row_class_name"mousedown.native"mousedownTable"row-click&q…

【微服务】日志搜集es+kibana+filebeat+redis+logstash(单机)

日志搜集系统搭建 基于7.17.16版本 ps: 项目是toB的&#xff0c;日志量不大 前置准备 软件下载 7.17.16版本。8.x版本需要JDK11 elastic.co/downloads/past-releasesJDK java8 Linux elastic 软件不能以root用户启动&#xff0c;需要创建用户 sudo useradd elastic #给此…

leaflet学习笔记-贝塞尔曲线绘制(八)

前言 两点之间的连线是很常见的&#xff0c;但是都是直直的一条线段&#xff0c;为了使连线更加平滑&#xff0c;我们可以使用曲线进行连线&#xff0c;本功能考虑使用贝塞尔曲线进行连线绘制&#xff0c;最后将线段的两端节点连接&#xff0c;返回一个polygon。 贝塞尔简介 …

【LangChain学习之旅】—(4) 模型I/O:输入提示、调用模型、解析输出

【LangChain学习之旅】—&#xff08;4&#xff09; 模型I/O&#xff1a;输入提示、调用模型、解析输出 Model I/OLangChain 中提示模板的构建语言模型为什么选择langchain输出解析总结 Reference&#xff1a;LangChain 实战课 Model I/O 我们可以把对模型的使用过程拆解成三块…

分布式引擎Elasticsearch本地部署并结合内网穿透远程访问

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

怎么看待存在争议的低代码?

一、低代码直接效果怎么样&#xff1f; 以体验过的JNPF平台为例&#xff0c;JNPF低代码开发的过程就是可以通过拖拉拽的方式去完成软件开发&#xff0c;复杂功能可以通过二次开发来解决&#xff0c;提升开发效率&#xff0c;降低开发成本。 给大家举个例子&#xff0c;以我们熟…

ORACLE RAC DG文件路径错乱解决办法

最近接手了一个客户的RAC-RAC dg环境的维护,登录上去之后发现dg延迟了8天,由于主库的空间非常紧张,归档日志早就删除了,所以准备使用rman基于scn点的备份恢复的方案恢复dg同步 在备份完成之后,使用新的控制文件进行数据恢复的时候报错datafile 43 not found: 检查了一下发现当…

SpringBoot请求参数加密、响应参数解密

SpringBoot请求参数加密、响应参数解密 1.说明 在项目开发工程中&#xff0c;有的项目可能对参数安全要求比较高&#xff0c;在整个http数据传输的过程中都需要对请求参数、响应参数进行加密&#xff0c;也就是说整个请求响应的过程都是加密处理的&#xff0c;不在浏览器上暴…

[linux]编译一个ko文件并运行

一、需求 有一段代码需要在运行时加载注入内核中&#xff0c;当用户层需要访问时可以提供内核态环境去运行。 二、c代码构建 // #include <errno.h> // #include <string.h> // #include <stdio.h> // #include <fcntl.h> // #include <stdlib.h…

全新小白菜QQ云端机器人登录系统源码 /去除解密授权学习版源码

源码介绍&#xff1a; 全新小白菜QQ云端机器人登录系统源码&#xff0c;是一款经过全面解密的授权学习版源码。 这款源码已解除了授权版的限制&#xff0c;然而许多人可能对其用途并不了解。实际上&#xff0c;该源码主要面向群机器人爱好者设计。它是一个基于挂机宝机器人框…

基于3D Gaussian Splatting与NeRF实现三维重建(使用IPhone创建数据集)

基于Spectacular AI与NeRF实现三维重建-使用IPhone创建数据集 前言项目简介创建数据集扫描处理数据集 解析数据集Python环境 Windows ffmpeg 环境搭建数据集处理安装Nerfstudio需要CUDA环境 依次安装依赖pip install nerfstudio Nerfstudio实现效果开始训练参数配置实时训练浏览…

吐血整理,自动化测试框架总结,一篇从0到1策底打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、什么是框架 定…

目标检测开源数据集——道路坑洼

一、危害 对车辆的影响&#xff1a;道路坑洼会导致车辆行驶不稳&#xff0c;增加车辆的颠簸&#xff0c;不仅影响乘坐舒适度&#xff0c;还可能对车辆的悬挂系统、轮胎等造成损害。长期在坑洼路面上行驶&#xff0c;车辆的减震系统、悬挂系统等关键部件容易受损&#xff0c;进…