数据结构之数组(对数组的所有操作!)

#include<stdio.h>
#define MAXSIZE 999


void init_array(int *array,int *cnt);
void append(int *array,int *cnt);
void rem(int *array,int *cnt,int pos);
void sort(int *array,int *cnt);
void traversal(int *array,int *cnt);
void reverse(int *array,int *cnt);


int main ()
{
    int array[MAXSIZE];//定义一个数组变量
    int cnt;//数组的有效元素个数
    init_array(array,&cnt);
    append(array,&cnt);
    append(array,&cnt);
    append(array,&cnt);
    append(array,&cnt);
    append(array,&cnt);
    traversal(array,&cnt);
    rem(array,&cnt,2);
    traversal(array,&cnt);
    sort(array,&cnt);
    traversal(array,&cnt);
    reverse(array,&cnt);
    traversal(array,&cnt);
    return 0;
}
//初始化操作
void init_array(int *array,int *cnt)
{
    int i;
    for(i=0;i<MAXSIZE;i++)
    {
        array[i] = 0;
    }
    *cnt=0;
    printf("数组初始化完成!\n");
}
//在数组中添加元素
void append(int *array,int *cnt)
{
    if(*cnt>MAXSIZE)
    {
        printf("数组已满,请删除一些空间后再添加\n");
        exit(0);
    }
    printf("请输入一个数组元素(int 型):\n");
    scanf("%d",&array[*cnt]);
    *cnt+=1;
    printf("数组成功添加一个元素!\n");
}
//删除指定位置的元素
void rem(int *array,int *cnt,int pos)
{
    int i;
    printf("开始移除该位置上的元素!\n");
    if(pos>*cnt || pos<0)
    {
        printf("找不到该位置!\n");
        exit(0);
    }
    for(i=pos-1;i<*cnt;i++)
    {
        array[i]=array[i+1];
    }
    *cnt-=1;
    printf("移除元素完毕!\n");
}
//遍历数组元素
void traversal(int *array,int *cnt)
{
    int i;
    printf("数组开始遍历:\n");
    for(i=0;i<*cnt;i++)
    {
        printf("%d\n",array[i]);
    }
    printf("数组遍历完毕!\n");
}
//选择排序数组
void sort(int *array,int *cnt)
{
    int i,j,t;
    printf("数组排序开始:\n");
    for(i=0;i<*cnt;i++)
    {
        for(j=i+1;j<*cnt;j++)
        {
            if(array[i]>array[j])
            {
                t=array[i];
                array[i]=array[j];
                array[j]=t;
            }
        }
    }
    printf("数组排序结束!\n");
}
//翻转数组
void reverse(int *array,int *cnt)
{
    int i=0;
    int j=*cnt-1;
    int t;
    printf("数组翻转开始:\n");
    while(i<j)
    {
        t=array[i];
        array[i]=array[j];
        array[j]=t;
        ++i;
        --j;
    }
    printf("数组翻转结束!\n");
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值