C++指针小练习

双色球统计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;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

二、Java中SpringBoot组件集成接入【MySQL和MybatisPlus】

二、Java中SpringBoot组件集成接入【MySQL和MybatisPlus】 1.MySQL和MybatisPlus简介2.maven依赖3.配置1.在application.yaml配置中加入mysql配置2.新增Mybatis-Plus配置类 4.参考文章 1.MySQL和MybatisPlus简介 MySQL是一种开源的关系型数据库管理系统&#xff0c;被广泛应用…

linux中出现不在 sudoers 文件中。此事将被报告的解决方法

出现如下提示gaokaoli 出现不在 sudoers 文件中。此事将被报告 一般是该用户 权限不够 既然知道权限不够可以添加到root用户组&#xff0c;获取权限即可 通过命令行添加到权限&#xff0c;发现还是不行 sudo usermod -g root gaokaoli 那就直接在配置文件中修改 通过执行vi…

中级Python面试问题

文章目录 专栏导读1、xrange 和 range 函数有什么区别&#xff1f;2、什么是字典理解&#xff1f;举个例子3、元组理解吗&#xff1f;如果是&#xff0c;怎么做&#xff0c;如果不是&#xff0c;为什么&#xff1f;4、 列表和元组的区别&#xff1f;5、浅拷贝和深拷贝有什么区别…

TS 36.331 V12.0.0-过程(2)-连接控制(1)-RRC连接建立

​本文的内容主要涉及TS 36.331&#xff0c;版本是C00&#xff0c;也就是V12.0.0。

TinyLog iOS v3.0接入文档

1.背景 为在线教育部提供高效、安全、易用的日志组件。 2.功能介绍 2.1 日志格式化 目前输出的日志格式如下&#xff1a; 日志级别/[YYYY-MM-DD HH:MM:SS MS] TinyLog-Tag: |线程| 代码文件名:行数|函数名|日志输出内容触发flush到文件的时机&#xff1a; 每15分钟定时触发…

TortoiseSVN·文件锁定与清理

安装 TortoiseSVN 的时候&#xff0c;选择 svn 命令可用, 选择 will be intalled on local hard drive 。 在锁定的文件夹内 cmd 进入终端&#xff0c;输入 find . -type f -name ".svn/lock" -exec rm -f {} \; 删除所有锁定文件。进行清理操作&#xff1a;svn clea…

一、数据结构基本概念

数据结构基本概念 一、数据结构基本概念1.基本概念和术语1.1数据&#xff08;Data&#xff09;1.2 数据元素&#xff08;Data element&#xff09;1.3 数据项 &#xff08;Data Item&#xff09;1.4 数据对象 &#xff08;Data Object&#xff09;1.5 数据结构 &#xff08;Dat…

JS栈和堆:数据是如何存储的

JS栈和堆&#xff1a;数据是如何存储的 背景JavaScript 是什么类型的语言JavaScript 的数据类型内存空间栈空间和堆空间再谈闭包 背景 JS有多种数据类型&#xff1a;数字型&#xff0c;字符串型&#xff0c;数组型等&#xff0c;虽然 JavaScript 并不需要直接去管理内存&#…

【软件测试】刚入行的测试人,“我“该怎么提升自己技术能力...

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

读《Mixtral of Experts》

摘要 稀疏混合专家&#xff08;SMoE&#xff09; 语言模型Mixtral 8x7B&#xff08;那大概可以理解成他是一个缝合怪&#xff0c;把所有的任务模型缝合到一起&#xff0c;然后有一个类似打分投票的路由机制来针对输入问题选择任务子模型从而得到针对性的结果。&#xff09;。Mi…

PHP短链接url还原成长链接

在开发过程中&#xff0c;碰到了需要校验用户回填的短链接是不是系统所需要的&#xff0c;于是就需要还原找出短链接所对应的长链接。 长链接转短链接 在百度上搜索程序员&#xff0c;跳转页面后的url就是一个长链接。当然你可以从任何地方复制一个长链接过来。 长链接 http…

高效降压控制器FP7132XR:为高亮度LED提供稳定可靠的电源

目录 一. FP7132概述 二. 驱动电路&#xff1a;FP7132 三. FP7132应用 高亮度LED作为新一代照明技术的代表&#xff0c;已经广泛应用于各种领域。然而&#xff0c;高亮度LED的工作电压较低&#xff0c;需要一个高效降压控制器来为其提供稳定可靠的电源。在众多降压控制器…

ubuntu20.04 扩大交换空间swap

检查当前swap情况 free -msudo swapon --show关闭现有的swap sudo swapoff -a创建一个新的swap文件 sudo fallocate -l 32G /swapfile设定正确的权限 sudo chmod 600 /swapfile下面这个指令会把我们的空间变成可用的swap空间 sudo mkswap /swapfile启用swap文件 sudo swa…

电源模块常见温升测试方法分享 -纳米软件

温升测试是电器产品安规测试项目之一&#xff0c;是为了检测电器产品及部件的温度变化情况&#xff0c;判断是否符合要求。在设备运行过程中会释放一定的热量&#xff0c;如果内部温度过高会影响产品的性能和稳定性&#xff0c;导致绝缘性能下降&#xff0c;因此温升测试是确保…

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

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

iPad Pro如何使用SSH远程连接服务器云端编程开发【内网穿透】

文章目录 1. 在iPad下载Code APP2.安装cpolar内网穿透2.1 cpolar 安装2.2 创建TCP隧道 3. iPad远程vscode4. 配置固定TCP端口地址4.1 保留固定TCP地址4.2 配置固定的TCP端口地址4.3 使用固定TCP地址远程vscode 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的 …

GSEQ行为序列分析软件学习汇总

0、问题描述&#xff1a; 1、GSEQ软件是做什么的&#xff1f;2、GSEQ软件如何使用&#xff1f;2、GSEQ软件前期需要在“记事本”中编写“程式码”需要将所有行为数据编码之后&#xff0c;将编码行为序列粘贴到GSEQ软件中去&#xff0c;如果数据量很大&#xff0c;这个过程就非…

基于ssm物流配送人员车辆调度管理系统的设计与实现+vue论文

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统物流配送人员车辆调度信息管理难度大&#xff0c;容错率低…

华为端口安全常用3种方法配置案例

安全动态mac地址学习功能 [Huawei]int g0/0/01 interface GigabitEthernet0/0/1 port-security enable //开启安全 port-security max-mac-num 2 //最多为2个mac地址学习 port-security protect-action restrict //丢包带警告 port-security aging-time 1 //mac地址的老化时间…

OpenAI 正式上线 GPT 商店

ChatGPT 商店上线&#xff0c;OpenAI 正式推出 GPT Store 北京时间 1 月 11 日&#xff0c;在经历了一个月的推迟后&#xff0c;OpenAI 在周三正式推出了 GPT Store。借助这一在线商店&#xff0c;OpenAI 用户可以分享定制版 ChatGPT 聊天机器人。 OpenAI 称&#xff0c;GPT …