黑马程序员——C语言基础——指针编程练习题
来源:互联网 发布:socket编写数据库脚本 编辑:程序博客网 时间:2024/06/07 05:53
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
打印结果为:
今天复习了一下指针的相关知识,并且在网上搜了一道小的编程练习题,大概题意如下:
有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。
大概的思路流程如下:
1.首先定义一个数组和M、N两个任意整数变量。
2.声明一个函数,本题使用指针解决问题,所以参数为两个指针变量,无返回值。
3.循环为数组初始化序号。
4.对数组进行交换操作,分为两步。
1)将数组末尾三项交换至数组最前三项。
2)将交换后位于末尾的三项(原数组最前三项),提前至第M项之后。
5.循环输出结果。
以下是具体的代码实现:
#include <stdio.h>#define N 10#define M 3void swap(int *x, int *y){ int *temp; temp = *x; *x = *y; *y = temp; }int main(int argc, const char * argv[]) { //定义数组 int array[N]; printf("未改变数组为:\t"); //循环为数组赋值 for (int i = 0; i < N; i++) { array[i] = i + 1; printf("%d\t",array[i]); } //循环M次,对数组进行操作 for (int i = 0; i < M; i++) { //首先将数组最后三个数组项放到数组前三位。 swap(&array[N - i - 1], &array[M - i - 1]); //然后将变更后的数组的最后三位,放在仅此于前M个项之后 swap(&array[N - i - 1], &array[(M - i + M - 1)]); } //最后输出操作之后的数组 printf("\n改变后的数组为:"); for (int i = 0; i < N; i++) { printf("%d\t",array[i]); }}
打印结果为:
未改变数组为:12345678910改变后的数组为: 89101237456
0 0
- 黑马程序员——C语言基础——指针编程练习题
- 黑马程序员——C语言基础——指针
- 黑马程序员——C语言基础—-----指针
- 黑马程序员——C语言基础07—指针
- 黑马程序员——C语言基础---数组、指针
- 黑马程序员——C语言基础(六)指针
- 黑马程序员——C语言基础篇---指针
- 黑马程序员——c语言基础:指针
- 黑马程序员——c语言基础:指针
- 黑马程序员——C语言基础---指针
- 黑马程序员——ios基础---C语言:字符串、指针
- 黑马程序员——C语言基础---指针1
- 黑马程序员——C语言基础---指针3
- 黑马程序员——C语言基础---指针4
- 黑马程序员——C语言基础---指针2
- 黑马程序员——c语言基础之指针
- 黑马程序员——C语言基础---指针
- 黑马程序员——C语言基础---又见指针
- 岁月的剪影【六月Rainy】
- 低调低调
- 给定一个整数,把整数中包含的每一个数字放到一个数组中(不要把数字转化为字符串处理)
- 【黑马程序员】----java基础---多态
- [2] MQTT,mosquitto,Eclipse Paho----mosquitto使用扫盲
- 黑马程序员——C语言基础——指针编程练习题
- 我的奋斗
- Nginx try_files
- LeetCode 7: Reverse Integer
- 使用Gson遇到的特殊字符被转码问题
- MSDEPLOYAGENTSERVICE) could not be contacted.
- java.lang.RuntimeException: Unable to instantiate activity ComponentInfo异常解决
- 操作系统实践(5)——关于LDT
- 网x速x数x据x流x量x