《算法笔记》2.7小节——C/C++快速入门-指针

2024-02-28 00:38

本文主要是介绍《算法笔记》2.7小节——C/C++快速入门-指针,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《算法笔记》2.7小节——C/C++快速入门->指针

问题 A: C语言10.1

[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB
解决 : 1792 提交 : 2222
题目描述
输入a和b两个整数,按先大后小的顺序输出a和b。注意请使用指针变量的方式进行比较和输出。

输入
两个用空格隔开的整数a和b。

输出
按先大后小的顺序输出a和b,用空格隔开。
请注意行尾输出换行。

样例输入 Copy
5 9
样例输出 Copy
9 5

程序代码:

#include<cstdio>
int main()
{int a,b;int *p=&a, *q=&b;scanf("%d%d",&a,&b);if(*p>*q)printf("%d %d\n",*p,*q);elseprintf("%d %d\n",*q,*p);return 0;} 

问题 B: C语言10.2

[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB
解决 : 1512 提交 : 1990
题目描述
输入a、b、c三个整数,按先大后小的顺序输出a、b和c。注意请使用指针变量的方式进行比较和输出。

输入
三个用空格隔开的整数a、b和c。

输出
按先大后小的顺序输出a、b和c,用空格隔开。
请注意行尾输出换行。

样例输入 Copy
9 0 10
样例输出 Copy
10 9 0

程序代码:

#include<cstdio>
int main()
{int a,b,c;int *p=&a, *q=&b, *k=&c;scanf("%d%d%d",&a,&b,&c);if(*p>*q){if(*q>*k){printf("%d %d %d\n",*p,*q,*k);}else{if(*p>*k)printf("%d %d %d\n",*p,*k,*q);elseprintf("%d %d %d\n",*k,*p,*q);}}else{if(*q>*k){if(*p>*k)printf("%d %d %d\n",*q,*p,*k);elseprintf("%d %d %d\n",*q,*k,*p);           }else{printf("%d %d %d\n",*k,*q,*p);}}return 0; 
}

问题 C: C语言10.10

[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB
解决 : 1609 提交 : 2394
题目描述
给定字符串定义char *a = “I love China!”,读入整数n,输出在进行了a = a + n这个赋值操作以后字符指针a对应的字符串。

输入
一个整数n,保证0<=n<13.

输出
输出进行了题目描述中赋值操作之后a对应的字符串。
请注意行尾输出换行。

样例输入 Copy
7
样例输出 Copy
China!

程序代码:

#include<cstdio>
#include<cstring>
int main()
{char *a = "I love China!";int n;scanf("%d",&n);for(char *p=a+n;p<a+strlen(a);p++)printf("%c",*p);return 0;}

问题 D: C语言10.15

[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB
解决 : 1349 提交 : 2458
题目描述
输入3个字符串,按从小到大的顺序输出。要求使用指针的方法进行处理。

输入
3行,每行一个用字符串。保证每个字符串的长度不超过20。

输出
按从小到大的顺序输出这3个字符串,每个字符串一行。
请注意行尾输出换行。

样例输入 Copy
China
CLOCK
deal
样例输出 Copy
CLOCK
China
deal

程序代码:

#include <cstdio>
#include <cstring> 
int main()
{			char a[20],b[20],c[20];char *p=a, *q=b, *k=c;scanf("%s%s%s",a,b,c);if(strcmp(a,b)>0){if(strcmp(b,c)>0){printf("%s\n%s\n%s\n",k,q,p);}else{if(strcmp(a,c)>0)printf("%s\n%s\n%s\n",q,k,p);elseprintf("%s\n%s\n%s\n",q,p,k);}}else{if(strcmp(b,c)>0){if(strcmp(a,c)>0)printf("%s\n%s\n%s\n",k,p,q);elseprintf("%s\n%s\n%s\n",p,k,q);           }else{printf("%s\n%s\n%s\n",p,q,k);}}return 0;
}

问题 E: C语言10.16

[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB
解决 : 1378 提交 : 2035
题目描述
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求用3个函数实现,分别为输入10个数、进行处理、输出10个数。要求使用指针的方法进行处理。

输入
用空格隔开的10个整数。

输出
输出进行题目描述操作之后的10个整数,每个整数之后输出一个空格。
请注意行尾输出换行。

样例输入 Copy
1 5 2 4 9 0 3 8 7 6
样例输出 Copy
0 5 2 4 6 1 3 8 7 9

程序代码:

#include<stdio.h>
#include<stdlib.h>
void input(int *p)
{for(int i=0; i<10; ++i){scanf("%d", p+i);}
}void swap(int *p)
{int i, temp1=*p, k=0;int j, temp2=*p, c=0;for(i=0; i<10; ++i){	if(*(p+i) <temp1){temp1=(*(p+i));k=i;}if(*(p+i)>temp2){temp2=(*(p + i));c=i;}	}(*(p+k))=*p;*p = temp1;*(p+c)=(*(p+9));*(p+9) = temp2;
}
void out(int *p)
{int i;for(i = 0; i<10; ++i){printf("%d ", *(p+i));}printf("\n");
}int main()
{	int a[10];int *p=a;input(p);swap(p);out(p);return 0;
}

这篇关于《算法笔记》2.7小节——C/C++快速入门-指针的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/754009

相关文章

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

springboot security快速使用示例详解

《springbootsecurity快速使用示例详解》:本文主要介绍springbootsecurity快速使用示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录创www.chinasem.cn建spring boot项目生成脚手架配置依赖接口示例代码项目结构启用s

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

C++中::SHCreateDirectoryEx函数使用方法

《C++中::SHCreateDirectoryEx函数使用方法》::SHCreateDirectoryEx用于创建多级目录,类似于mkdir-p命令,本文主要介绍了C++中::SHCreateDir... 目录1. 函数原型与依赖项2. 基本使用示例示例 1:创建单层目录示例 2:创建多级目录3. 关键注

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

C++字符串提取和分割的多种方法

《C++字符串提取和分割的多种方法》在C++编程中,字符串处理是一个常见的任务,尤其是在需要从字符串中提取特定数据时,本文将详细探讨如何使用C++标准库中的工具来提取和分割字符串,并分析不同方法的适用... 目录1. 字符串提取的基本方法1.1 使用 std::istringstream 和 >> 操作符示