当前位置:网站首页>牛客网刷题记录 || 指针
牛客网刷题记录 || 指针
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中的数再求和
边栏推荐
猜你喜欢
Dialogue with Academician Yu Fei of the Canadian Academy of Engineering: Looking for "Shannon's Theorem" in the field of AI
7行代码让B站崩溃3小时,竟因“一个诡计多端的0”
一文了解信创背景下 SAN 存储转型路线
In the Chinese ToB market, it is too difficult to choose the right supplier
五种常见IO模型
字节跳动基于 Iceberg 的海量特征存储实践
【码蹄集新手村600题】pow()函数详解
【运维】ssh tunneling 依靠ssh的22端口实现访问远程服务器的接口服务
scroll bar style
【Harmony OS】【ARK UI】ets使用第三方类库crypto实现加密解密
随机推荐
【盘古Coder】:高性能函数级程序语言生成模型
云商店专访 | 云速ERP,小场景里帮企业做“大生意”
【学习笔记】NOIP模拟赛
xatlas源码解析(七)
LL(1),LR(0),SLR(1),LALR(1),LR(1)对比与分析
ARTS-第-25-期
【MySQL】如何向mysql数据库插入当前时间
160亿美元!传微软计划收购全球最大语音识别公司
7行代码让B站崩溃3小时,竟因“一个诡计多端的0”
KubeMeet 报名 | 「边缘原生」线上技术沙龙完整议程公布!
支持向量机SVM
U盘拔出时总是提示有程序正在使用?
原理银行一直在收我利息!!!
scroll bar style
One's deceased father grind English vocabulary training camp Day 17 】 -- espresso, ultimate, gradually, detect, dimension
【考研英语词汇训练营】Day 16 —— bankrupt,remain,regulate,construct,reflect
西人马重磅发布自研电荷信号调理芯片CU0102B
MySql解决GROUP BY出现的问题
P4769 [NOI2018] 冒泡排序(组合数学)
500强企业研发效能提升课,今晚开课啦!