《算法笔记》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自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域

C++中assign函数的使用

《C++中assign函数的使用》在C++标准模板库中,std::list等容器都提供了assign成员函数,它比操作符更灵活,支持多种初始化方式,下面就来介绍一下assign的用法,具有一定的参考价... 目录​1.assign的基本功能​​语法​2. 具体用法示例​​​(1) 填充n个相同值​​(2)

c++ 类成员变量默认初始值的实现

《c++类成员变量默认初始值的实现》本文主要介绍了c++类成员变量默认初始值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录C++类成员变量初始化c++类的变量的初始化在C++中,如果使用类成员变量时未给定其初始值,那么它将被

C++中NULL与nullptr的区别小结

《C++中NULL与nullptr的区别小结》本文介绍了C++编程中NULL与nullptr的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录C++98空值——NULLC++11空值——nullptr区别对比示例 C++98空值——NUL

C++ Log4cpp跨平台日志库的使用小结

《C++Log4cpp跨平台日志库的使用小结》Log4cpp是c++类库,本文详细介绍了C++日志库log4cpp的使用方法,及设置日志输出格式和优先级,具有一定的参考价值,感兴趣的可以了解一下... 目录一、介绍1. log4cpp的日志方式2.设置日志输出的格式3. 设置日志的输出优先级二、Window

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

C++20管道运算符的实现示例

《C++20管道运算符的实现示例》本文简要介绍C++20管道运算符的使用与实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录标准库的管道运算符使用自己实现类似的管道运算符我们不打算介绍太多,因为它实际属于c++20最为重要的