当前位置:网站首页>牛客网刷题记录 || 指针
牛客网刷题记录 || 指针
2022-07-29 18:08:00 【努力的小鳴人】

本文收录于专栏:【牛客网刷题记录】
专栏目的是对于刷题过程的记录,题型的列举和讲解,会持续输出,欢迎免费订阅!!
这是牛客网刷题记录专栏第一篇博文,先给大家简单介绍一下牛客网,牛客网是一个集笔面试系统、题库、课程教育、社群交流、招聘内推于一体的优质网站,牛客网题库中包含几万道题目,注重通过边学边练的模式揽获编程人员的喜爱
牛客网干净整洁的界面,人性化的布局,高质量的题库题解,丰富的大厂面试题,让我想把它分享给大家,推荐大家来牛客网刷题,链接我就放在这了有需要自取点击开始刷题
小Tips:注册完之后,不用填信息直接点X,开启刷题之旅~
指针
1.获取字符串长度

描述
键盘输入一个字符串,编写代码获取字符串的长度并输出,要求使用字符指针实现
输入描述:
键盘输入一个字符串
输出描述:
输出字符串的长度
示例1:
输入:helloworld
输出:10
代码
#include <iostream>
#include <string.h>
using namespace std;
int main() {
char str[100] = {
0 };
cin.getline(str, sizeof(str));
// write your code here......
scanf("%s",str);
char * p=str;
int count=0;
while(*p != '\0')
{
p++;
count++;
}
printf("%d\n",count);
return 0;
}

题解
先定义一个指针:指向字符数组,字符数组的数组名表示字符串首字符的地址
再定义一个计数器 让其为0,用while循环 从头开始遍历字符串 遍历一个让计数器加1个,直到遇到 \0 为止,最后打印出计数器的值,次计数器的值就是字符串的长度

2.编写函数实现两数交换(指针方式)

描述
编写一个函数,实现两个整数的交换,要求采用指针的方式实现
输入描述:
键盘输入2个整数 m 和 n
输出描述:
输出交换后m 和 n 的值,中间使用空格隔开
示例1:
输入:2
3
输出:3 2
代码
#include <iostream>
using namespace std;
int main() {
int m, n;
cin >> m;
cin >> n;
// write your code here......
swap(m, n);
cout << m << " " << n << endl;
return 0;
}
void swap(int &m, int &n)
{
int temp = m;
m = n;
n = temp;
}

题解
这个指针方式很简单,交换一下就ok了

3.利用指针遍历数组

描述
键盘随机输入 6 个整数,将这些数据保存到数组中,利用指针遍历数组中的元素并打印
输入描述:
键盘随机输入 6 个整数
输出描述:
输出数组中的所有元素,每个元素中间使用空格隔开
例如:10 20 30 40 50 60
示例1:
输入:
10
20
30
40
50
60
输出:10 20 30 40 50 60
代码
#include <iostream>
using namespace std;
int main() {
int arr[6] = {
0 };
int* ptr = arr;
int len = sizeof(arr) / sizeof(int);
for (int i = 0; i < len; i++) {
cin >> arr[i];
}
for (ptr ; ptr < arr + len ; ptr++)
{
cout << *ptr<< " ";
}
return 0;
}
题解
利用指针遍历数组, 数组名是数组首元素的地址,就可以访问每一个元素的值
4.牛牛的新数组求和

描述
牛牛学习了指针相关的知识,想实现一个 int cal(int *array,int n) 的函数求出长度为 n 的数组的和
输入描述:
第一行输入一个正整数 n ,表示数组的长度
第二行输入 n 个正整数,表示数组中每个数字的值
输出描述:
实现 int cal(int *array,int n) 求出数组array的和
示例1:
输入:5
2 8 1 9 5
输出:25
代码
#include <iostream>
using namespace std;
int cal(int *array, int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += *(array + i);
}
return sum;
}
int main() {
int n = 0;
int arr[50];
cin >> n;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
int sum = cal (arr, n);
cout << sum << endl;
return 0;
}

题解
定义一个cal函数实现用指针提取数组array中的数再求和
边栏推荐
猜你喜欢

整体系统地认识网络安全与发展

7行代码让B站崩溃3小时,竟因“一个诡计多端的0”

Word Embedding与Word2Vec学习

软考高级软件架构风格定义以及分类

500强企业研发效能提升课,今晚开课啦!

One's deceased father grind English vocabulary training camp Day 17 】 -- espresso, ultimate, gradually, detect, dimension

KubeMeet 报名 | 「边缘原生」线上技术沙龙完整议程公布!

How different DAOs are changing the world

Virtink:更轻量的 Kubernetes 原生虚拟化管理引擎

UG安装出现Server Start Failed. The Server May Already Be Running!!解决方法
随机推荐
【运维】ssh tunneling 依靠ssh的22端口实现访问远程服务器的接口服务
In the Chinese ToB market, it is too difficult to choose the right supplier
算力顶天地,存力纳乾坤:国家超级计算济南中心的一体两面
[Code Hoof Set Novice Village 600 Questions] Detailed explanation of pow() function
U盘拔出时总是提示有程序正在使用?
活动回顾 | 大咖云集“开源安全治理模型和工具”线上研讨会
Blender 源码分析(2)
招聘|字节跳动云原生计算,期待你的加入
StarRocks 2.3 新版本特性介绍
【深度学习】使用yolov5对数据进行预标注
如何实时计算日累计逐单资金流
滚动条样式
原理银行一直在收我利息!!!
[Code Hoof Set Novice Village 600 Questions] Given an integer n, find all the values of x and y in floor(n/x)=y
解决 @RefreshScope 导致定时任务注解 @Scheduled 失效
开放原子开源基金会为白金、黄金、白银捐赠人授牌,CSDN荣获黄金捐赠人
亿级用户背后的字节跳动云原生计算最佳实践
【7.23-7.29】博客精彩回顾
Frame双向通信插件FrameDataTrans
倒计时1天! | 明日9点,这场精彩的Web3盛宴不容错过
