直接上代码,没有什么说的

 # include <stdio.h>
# include <malloc.h>
# include <stdlib.h> //用C实现数组 typedef struct Array{
int len;//数组的长度
int* pHead;//数组首地址
int cnt;//数组有效元素个数
}* PARR,ARR; bool insert(PARR arr,int index,int num);
bool add(PARR arr,int num);
bool isEmpty(PARR arr);
void print(PARR arr);
void initArray(PARR arr,int len);
bool isFull(PARR arr);
bool deleteArr(PARR arr,int index);
void sort(PARR arr); int main(void)
{
ARR arr;
initArray(&arr,);
if(isEmpty(&arr)){
printf("数组为空\n");
} add(&arr,);
add(&arr,);
add(&arr,);
add(&arr,);
add(&arr,);
// add(&arr,1);
// add(&arr,1);
print(&arr);
sort(&arr);
deleteArr(&arr,);
print(&arr); return ;
} //初始化数组
void initArray(PARR arr,int length){
//申请内存
arr->pHead = (int*)malloc(sizeof(int)*length);
if(NULL==arr->pHead){
printf("申请内存失败");
exit(-);
}
arr->len = length;
arr->cnt = ;
} //遍历数组
void print(PARR arr){
if(isEmpty(arr)){
printf("数组为空");
}
//for循环打印数组
for(int i=; i<arr->cnt; i++){
printf("%d ",arr->pHead[i]);
}
printf("\n"); } //判读数组是否为空
bool isEmpty(PARR arr){
return arr->cnt==;
} //判断数组是否满
bool isFull(PARR arr){
return arr->cnt==arr->len;
} //往数组里添加元素
bool add(PARR arr,int num){
if(isFull(arr)){
printf("数组已满");
return false;
} arr->pHead[arr->cnt] = num;
arr->cnt++;
return true;
} //向数组中插入元素
bool insert(PARR arr,int index,int num){
if(isFull(arr)){
return false;
}
if(index<||index>arr->cnt+){
return false;
} //把index-1之后的数往后移动
for(int i=arr->cnt-; i>=index-;i--){
arr->pHead[i+] = arr->pHead[i];
} arr->pHead[index-] = num;
arr->cnt++;
return true;
} //删除指定位置的元素
bool deleteArr(PARR arr,int index){
if(isEmpty(arr)){
return false;
}
if(index<||index>arr->cnt+){
return false;
} for(int i=index; i<arr->cnt;i++){
arr->pHead[i-] = arr->pHead[i];
}
arr->cnt--;
return true;
} //排序
void sort(PARR arr){ int i,j,tem;
for(i=;i<arr->cnt-;i++) {
for(j=;j<arr->cnt--i;j++){
if (arr->pHead[j]>arr->pHead[j+]){
tem = arr->pHead[j];
arr->pHead[j] = arr->pHead[j+];
arr->pHead[j+] = tem;
}
}
}
}

C代码实现数组的更多相关文章

  1. Linux Kernel代码艺术——数组初始化

    前几天看内核中系统调用代码,在系统调用向量表初始化中,有下面这段代码写的让我有点摸不着头脑: const sys_call_ptr_t sys_call_table[__NR_syscall_max+ ...

  2. JMeter脚本java代码String数组要写成String[] args,不能写成String args[],否则报错。

    JMeter脚本java代码String数组中括号要写在类型关键字后面,不能写在变量名后面.

  3. 一行代码实现数组去重(ES6)

    ES6中新增了Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如: let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3]; ...

  4. javascript高逼格代码实现数组去重,JSON深度拷贝,匿名函数自执行,数字取整等

    1.如何装逼用代码骂别人傻逼 (!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]] 2.如何优雅的用代 ...

  5. Linux Kernel代码艺术——数组初始化【转】

    转自:http://www.cnblogs.com/hazir/p/array_initialization.html 前几天看内核中系统调用代码,在系统调用向量表初始化中,有下面这段代码写的让我有点 ...

  6. java算法面试题:有数组a[n],用java代码将数组元素顺序颠倒

    package com.swift; import java.util.ArrayList; import java.util.Collections; import java.util.List; ...

  7. 来看下,C# WebService WSDL自动生成代码,数组参数的BUG。。。ArrayOfString

    ArrayOfString ArrayOfString ArrayOfString 解决C#客户端 ArrayOfString 参数问题.(希望搜索引擎能搜到,帮你解决神奇的ArrayOfString ...

  8. C/C++ 一段代码区分数组指针|指针数组|函数指针|函数指针数组

    #include<stdio.h> #include<stdlib.h> #include<windows.h> /* 举列子说明什么是函数指针 */ //以一个加 ...

  9. [改善Java代码]警惕数组的浅拷贝

    建议62:警惕数组的浅拷贝 一.分析  在日常工作中,我们会遇见很多数组的拷贝和复制的问题,但是在你使用系统提供的API进行编码的时候,无形中会留下浅拷贝的隐患. 二.场景  有这样一个例子,第一个箱 ...

随机推荐

  1. 使用野狗(Wilddog)云setValue写入数据

    - (void)viewDidLoad { [super viewDidLoad]; //创建野狗实例化对象 用于随时监听数值变化 Wilddog *myRootRef = [[Wilddog all ...

  2. tp5 model 的时间戳

    单独在模型里面设置:(推荐) protected $autoWriteTimestamp = true; // int 型 protected $autoWriteTimestamp = 'datet ...

  3. 如何利用rem在移动端不同设备上让字体自适应大小

    本人也是一个刚刚接触前端的小虾米,对于移动端这一块更是一抹眼的黑,前端时间接手开始一个移动端的项目,在网上查询了一下rem的作用,百度搜索下来全是介绍rem的作用原理的(rem是根据根元素计算的),然 ...

  4. php备份mysql的代码

    1. mydb.php //DB类2. backup.php //备份脚本3. restore.php //还原脚本 mydb.php <?class db{ var $linkid;var $ ...

  5. MVC Code First 自动生成数据库

    1.新建一个MVC项目

  6. Http与Socket小谈

    http与socket是网络编程中最为重要的概念,不管是客户端还是服务端,都是最为重要的部分,以下简述两者的关系和区别(个人见解). Http 定义 基于应用层的超文本传输协议.通常承载于TCP/IP ...

  7. 【转】网络编程socket基本API详解

    转自:http://www.cnblogs.com/luxiaoxun/archive/2012/10/16/2725760.html socket socket是在应用层和传输层之间的一个抽象层,它 ...

  8. CentOS安装gitLab服务器

    首先利用gitlab-install-el6.sh安装,比较简单: (出处:http://www.linuxidc.com/Linux/2013-06/85754.htm) 1:如果有条件,提供一台全 ...

  9. css中“~”和“>”是什么意思?

    css中"~"是: 为所有相同的父元素中位于 p 元素之后的所有 ul 元素设置背景: p~ul{ background:#ff0000; }    <p>快乐生活&l ...

  10. 【转载】制作一个超精简的WIN7.gho

    首先说明一点,这个Resource不是我制作的,Google搜了下GHO镜像文件制作,挺复杂的.如果要从头到尾自己制作GHO文件可以参考: http://baike.so.com/doc/674790 ...