• 牛客网刷题记录 || 指针


    在这里插入图片描述
    🛒本文收录于专栏【牛客网刷题记录】
    📢专栏目的是对于刷题过程的记录,题型的列举和讲解,会持续输出,欢迎免费订阅!!

    这是牛客网刷题记录专栏第一篇博文,先给大家简单介绍一下牛客网,牛客网是一个集笔面试系统、题库、课程教育、社群交流、招聘内推于一体的优质网站牛客网题库中包含几万道题目,注重通过边学边练的模式揽获编程人员的喜爱
    在这里插入图片描述

    牛客网干净整洁的界面,人性化的布局,高质量的题库题解,丰富的大厂面试题,让我想把它分享给大家,推荐大家来牛客网刷题,链接我就放在这了有需要自取👉点击开始刷题

    小Tips:注册完之后,不用填信息直接点X,开启刷题之旅~


    指针

    🔥1.获取字符串长度

    在这里插入图片描述

    👌描述

    键盘输入一个字符串,编写代码获取字符串的长度并输出,要求使用字符指针实现

    输入描述:
    键盘输入一个字符串

    输出描述:
    输出字符串的长度

    示例1:

    输入:helloworld
    输出:10
    
    • 1
    • 2

    👌代码

    #include 
    #include 
    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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    在这里插入图片描述

    👌题解

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

    在这里插入图片描述


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

    在这里插入图片描述

    👌描述

    编写一个函数,实现两个整数的交换,要求采用指针的方式实现

    输入描述:
    键盘输入2个整数 m 和 n

    输出描述:
    输出交换后m 和 n 的值,中间使用空格隔开

    示例1:

    输入:2
    	 3
    输出:3 2
    
    • 1
    • 2
    • 3

    👌代码

    #include 
    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; 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    在这里插入图片描述

    👌题解

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

    在这里插入图片描述


    🔥3.利用指针遍历数组

    在这里插入图片描述

    👌描述

    键盘随机输入 6 个整数,将这些数据保存到数组中,利用指针遍历数组中的元素并打印

    输入描述:
    键盘随机输入 6 个整数

    输出描述:
    输出数组中的所有元素,每个元素中间使用空格隔开

    例如:10 20 30 40 50 60

    示例1:

    输入:
    	10
    	20
    	30 
    	40
    	50
    	60
    输出:10 20 30 40 50 60
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    👌代码

    #include 
    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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    👌题解

    利用指针遍历数组, 数组名是数组首元素的地址,就可以访问每一个元素的值


    🔥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
    
    • 1
    • 2
    • 3

    👌代码

    #include 
    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;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    在这里插入图片描述

    👌题解

    定义一个cal函数实现用指针提取数组array中的数再求和


  • 相关阅读:
    PC网站支付宝扫码登录
    Java-程序控制语句
    SpringBoot开发实用篇(3)—整合第三方技术
    数据分析师 医学数据分析 spss ,二项检验的概念和优缺点,适用场景 卡方检验和二相检验的区别
    Reggie外卖项目 —— 后台系统登录功能
    PDF文件太大了怎么办,如何压缩PDF且不改变清晰度
    信驰达RF-DG-52PAS Zigbee 3.0协调器Home Assistant上手指南
    认识matlab
    JDBC连接数据库工具类
    web前端期末大作业:基于HTML+CSS+JavaScript奥迪企业bootstrap响应式网站
  • 原文地址:https://blog.csdn.net/m0_64996150/article/details/126020075