数组反转(下)
来源:互联网 发布:无线wifi破解软件 编辑:程序博客网 时间:2024/04/27 15:40
我在数组反转(上)中已经提到了样例程序。现在我们就要实现。
首先来说头文件。其实在样例程序中我最初是不打算使用头文件的。但是因为不用头文件,实现函数的时候就必须算好次序,很烦,因此我就使用头文件了。头文件中定义了我们要用的几个函数。
#ifndef reversingArray_main_h#define reversingArray_main_hvoid pushToStack(int pushing);int popFromStack();void reverseByStack();void reverse();void init();#endif
好了。如果看过上集和中集的话,应该知道这几个函数是干什么的。如果不知道,可以去看一看上集和中集。
之后便是主程序。
#include <stdio.h>#include <memory.h>#include "main.h"int array[10] = {0,1,2,3,4,5,6,7,8,9};typedef struct stack{ int data[10]; int top;}REVSTACK;REVSTACK stack;void init(){ stack.top = -1;}void reverseByStack(){ for (int i = 0;i < 10;++i) { pushToStack(array[i]); } memset(array,0,sizeof(array)); for (int i = 0;i < 10;++i)array[i] = popFromStack(); for (int i = 0;i < 10;++i)printf("%d ",array[i]); }void reverse(){ for (int i = 0;i < 5;++i) { int temp = array[i]; array[i] = array[9-i]; array[9-i] = temp; } printf("\n"); for (int i = 0;i < 10;++i)printf("%d ",array[i]);}void pushToStack(int pushing){ stack.top++; stack.data[stack.top] = pushing;}int popFromStack(){ int retVal = stack.data[stack.top]; stack.top--; return retVal;}int main(int argc, const char * argv[]){ init(); reverseByStack(); reverse(); return 0;}
上集和中集中reverse和reverseByStack这两个函数便是从这样例程序中摘过来的。这两个函数都没有参数。如果要设计成通用的,需要修改定义+代码。
运行结果如下:
9 8 7 6 5 4 3 2 1 0
0 1 2 3 4 5 6 7 8 9
- 数组反转(下)
- 数组反转(上)
- 数组反转(中)
- (三)反转数组
- 数组反转(整型数组)
- 数组反转
- 数组反转
- 反转数组
- 反转数组
- 数组反转
- 数组反转
- 数组反转
- Linux下实现反转一个字符串或者数组中的数据
- 数组 数组反转,排序
- C语言反转数组(reverse函数)
- Android中的“控制反转”(下)
- Spring的控制反转(下)
- 将数组进行反转
- HTTP缓存相关属性的服务器配置
- asp.net利用HttpWorkerRequest上传大文件
- .NET uml设计系列1:正向工程
- Android防止手机休眠
- IEqualityComparer for Linq Distinct() 通用类
- 数组反转(下)
- android 屏幕保持唤醒
- 通过 ulimit 改善系统性能
- X86cpu运行的什么格式代码? ELF还是Bin ?
- android开发常用代码片段
- android bluetooth蓝牙移植
- .NET uml设计系列2:逆向工程
- Linux学习杂的笔记---一些细节需要及时记录
- secureCRT串口传送文件