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

 # 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. 解决Mysql连接池被关闭 ,hibernate尝试连接不能连接的问题。 (默认mysql连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池。系统发布第二天访问链接关闭问题。

    解决Mysql连接池被关闭  ,hibernate尝试连接不能连接的问题. (默认MySQL连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池. 所以系统发布第二天访问会 ...

  2. javaSE基础04

    javaSE基础04 一.三木运算符 <表达式1> ? <表达式2> : <表达式3> "?"运算符的含义是: 先求表达式1的值, 如果为真, ...

  3. Cocos2dx

    初玩Cocos2dx,多多包涵. 感觉版本之间的差异比较大,相对前面的版本来说,3.X更容易上手,更方便了. 一.安装python.我的python-2.7.3.配置环境变量 系统变量里:在Path里 ...

  4. zend studio 13.5破解以及集成xdebug

    环境说明: 操作系统:Windows 7 Ultimate Edition Service Pack 1 PHP:7.0.11 TS Zend Studio:13.5.0 Xdebug:2.5.0 一 ...

  5. vs使用

    1.控制dll是否生成到本地,如图,右击dll,选择属性,设置复制到本地为true即可

  6. 【iOS atomic、nonatomic、assign、copy、retain、weak、strong】的定义和区别详解

    一.atomic与nonatomic 1.相同点 都是为对象添加get和set方法 2.不同点 atomic为get方法加了一把安全锁(及原子锁),使得方法get线程安全,执行效率慢 nonatomi ...

  7. 转:简单窗体振动-WaitForSingleObject,消息,winapi

    http://www.cnblogs.com/Jekhn/archive/2012/08/25/2656656.html 线程,消息函数,SetWindowPos设置窗体位置 if WaitForSi ...

  8. 谈谈PHP代码规范

    [转] http://www.syyong.com/php/Talk-about-PHP-code-specification.html 我向往这样一个php世界,里面没有代码规范之争.你我都一样,都 ...

  9. GRU(Gated Recurrent Unit) 更新过程推导及简单代码实现

    GRU(Gated Recurrent Unit) 更新过程推导及简单代码实现 RNN GRU matlab codes RNN网络考虑到了具有时间数列的样本数据,但是RNN仍存在着一些问题,比如随着 ...

  10. JS操作Json

    因为我水啊 所以我就要手打一下 熟悉一下 ===== JSON 全称 JavaScript Object Notation(标记) 一种轻量级的数据交互格式,采用完全独立于语言的文本格式 同事JSON ...