C语言小程序(六)、数组操作

来源:互联网 发布:枪神纪近战武器数据 编辑:程序博客网 时间:2024/05/18 17:58

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

#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++;}elseprintf("只能在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-1int *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;}