对数组进行操作,查找、插入、删除。

#include <stdio.h>
#include <stdlib.h>
#include <time.h> int size = 0;
int flag = 0; void output(int *arry)
{
int i = 0;
for(i=0; i<size; i++)
{
printf("arry[%d]=%d\t",i,arry[i]);
if((i+1)%5 == 0)
printf("\n");
}
printf("\n");
} void getarry(int *arry)
{
int i = 0;
srand(time(NULL));
for(i=0; i<size; i++)
{
arry[i] = rand() % 100;
}
} void add(int *arry, int pos, int num)
{
int i = 0;
if(pos>=0 && pos<=size)
{
if(pos < size) //在中间插入
{
for(i=size; i>pos; i--)
{
arry[i] = arry[i-1];
}
arry[pos] = num;
}
else //在最后的位置插入
{
arry[size] = num;
}
size++;
}
else
printf("只能在0-%d的位置插入。\n",size);
} int search(int *arry, int num)
{
static int pos = 0;
if(flag)
pos++;
for(; pos<size; pos++)
{
if(arry[pos] == num)
{
flag = 0;
return pos;
}
}
return -1;
} void mod(int *arry, int pos, int num)
{
if(pos>=0 && pos<size)
{
arry[pos] = num;
}
else
{
printf("输入位置错误。\n");
}
} int del(int *arry, int num)
{
int count = 0;
int pos = 0;
int i = 0;
pos=search(arry, num);
while(pos+1)
{
for(i=pos; i<size; i++)
{
arry[i] = arry[i+1];
}
count++;
pos=search(arry, num);
} return count;
} int main()
{
//pos 0到size-1
int *arry = NULL;
int count = 0;
int pos = 0;
int num = 0; printf("输入要产生多少个随机数:");
scanf("%d",&size);
arry = malloc(2*size*sizeof(int)); getarry(arry);
output(arry); printf("输入要添加的位置(0-%d):",size);
scanf("%d",&pos);
printf("输入要添加的数字:");
scanf("%d",&num);
add(arry, pos, num);
output(arry); printf("输入要查找的数字:");
scanf("%d",&num);
pos=search(arry, num);
while(pos+1)
{
flag = 1;
count++;
printf("arry[%d]=%d\n",pos, num);
pos=search(arry, num);
}
printf("共找到%d个匹配数字\n",count); printf("输入要修改的位置:");
scanf("%d",&pos);
printf("输入要修改为数字:");
scanf("%d",&num);
mod(arry, pos, num);
output(arry); printf("输入要删除的数字:");
scanf("%d",&num);
del(arry, num);
output(arry); free(arry);
arry = NULL; return 0;
}

C语言小程序(六)、数组操作的更多相关文章

  1. 微信小程序之数组操作:push与concat的区别

    微信小程序中需要用到数组的操作,push和concat二者功能很相像,但有两点区别. 先看如下例子: var arr = []; arr.push(); arr.push(); arr.push([, ...

  2. 【微信小程序】数组操作

    Page({ data: { list:[{ id:1, name:'应季鲜果', count:1 },{ id:2, name:'精致糕点', count:6 },{ id:3, name:'全球美 ...

  3. 小程序JSON数组操作

  4. C语言小程序——推箱子(窄字符和宽字符)

    C语言小程序——推箱子(窄字符Version) 推箱子.c #include <stdio.h> #include <conio.h> #include <stdlib. ...

  5. Linux下简单C语言小程序的反汇编分析

    韩洋原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 写在开始,本文为因为参加MOO ...

  6. c语言小程序以及java生成注释文档方法

    c语言小程序:sizeof和strlen() sizeof运算符以字节为单位给出数据的大小,strlen()函数以字符为单位给出字符串的长度,字符和字节不是一回事. char类型用于存储字母和标点符号 ...

  7. 通过反汇编C语言小程序学习Liunx汇编语言

    大家好!    我是来自山东师范大学的吴乐.    今天在<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ...

  8. 微信小程序弹出操作菜单

    微信小程序弹出操作菜单 比如在页面上放一个按钮,点击按钮弹出操作菜单,那么在按钮的 bindtap 事件里,执行下面的代码即可: wx.showActionSheet({ itemList: ['A' ...

  9. Linux C语言小程序

    Linux C语言小程序 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include & ...

  10. 图解微信小程序---调用API操作步骤

    图解微信小程序---调用API操作步骤 什么是API API(Application Programming Interface,应用程序编程接口:是一些预先定义的函数,目的是提供应用程序与开发人员基 ...

随机推荐

  1. Android ImageButton的使用。

    1.首先是范例代码,一个基本的ImageButton响应. package com.example.arlxsdemo; import android.graphics.Bitmap; import ...

  2. hihoCoder #1321 : 搜索五•数独 (Dancing Links ,精确覆盖)

    hiho一下第102周的题目. 原题地址:http://hihocoder.com/problemset/problem/1321 题意:输入一个9*9数独矩阵,0表示没填的空位,输出这个数独的答案. ...

  3. extendgcd模板

    看了数论第一章,终于搞懂了扩展欧几里德,其实就是普通欧几里德的逆推过程. // ax+by = gcd(a,b) ->求解x,y 其中a,b不全为0,可以为负数// 复杂度:O(log2a)vo ...

  4. js验证金额是否符合要求的正则表达式

    正则的只是就不在这里重复的讲了,直接上代码 var mny = /^(((([1-9]([0-9]{0,8}))|0)\.([0-9]{1,2}))|([1-9]([0-9]{0,8})))$/; m ...

  5. api 爬虫 避免相同 input 在信息未更新 情况下 重复请求重复

  6. Linux c编程:I/O多路复用之select

    一般我们在写socet程序的时候调用的accept,recv等操作都是阻塞型的.意思就是如果我们一直收不到数据那么则会被阻塞.所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待 ...

  7. vMware存储:SAN配置基础

    VMware存储不仅仅是将LUN映射给物理服务器这么简单.VMware vSphere允许系统管理员在一个物理机上创建多个虚拟机. 潜在的hypervisor和vSphere ESXi,能够使gues ...

  8. #!/usr/bin/python和#!/usr/bin/env 的区别(转)

    #!/usr/bin/python和#!/usr/bin/env 的区别   #!/usr/bin/python 通常在一个.py文件开头都会有这个语句 它只在Linux系统下生效,意思是当作为可执行 ...

  9. rails 命名

    1.model rails g model wordSetting model:WordSetting has_many: word_settings table: word_settings vie ...

  10. 培训笔记——Linux基本命令

    在介绍命令之前,更重要的要先介绍一下快速输入命令的方法. 如果你能记住一些常用命令,毫无疑问,通过命令的操作方式比通过鼠标的操作方式要快. 但是有一些命令或是命令用到的参数如文件名特别复杂特别长,这时 ...