《算法笔记》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

相关文章

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

解决java.lang.NullPointerException问题(空指针异常)

《解决java.lang.NullPointerException问题(空指针异常)》本文详细介绍了Java中的NullPointerException异常及其常见原因,包括对象引用为null、数组元... 目录Java.lang.NullPointerException(空指针异常)NullPointer

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为

C++一个数组赋值给另一个数组方式

《C++一个数组赋值给另一个数组方式》文章介绍了三种在C++中将一个数组赋值给另一个数组的方法:使用循环逐个元素赋值、使用标准库函数std::copy或std::memcpy以及使用标准库容器,每种方... 目录C++一个数组赋值给另一个数组循环遍历赋值使用标准库中的函数 std::copy 或 std::

通俗易懂的Java常见限流算法具体实现

《通俗易懂的Java常见限流算法具体实现》:本文主要介绍Java常见限流算法具体实现的相关资料,包括漏桶算法、令牌桶算法、Nginx限流和Redis+Lua限流的实现原理和具体步骤,并比较了它们的... 目录一、漏桶算法1.漏桶算法的思想和原理2.具体实现二、令牌桶算法1.令牌桶算法流程:2.具体实现2.1

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import