18 数组基本操作(未完成)

Posted abel2020

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了18 数组基本操作(未完成)相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#include <stdbool.h>
#include <string.h>         //字符函数库,这里不需要
#include <stdlib.h>       //exit 函数需要
struct arr
{
    char* arr_name;
    int len;            //当前数组长度
    int maxlen;
};

void init_arr(struct arr* array, int length);
void show_arr(struct arr* array);
bool is_empty(struct arr* array);
bool is_full(struct arr* array);
int get_arr(struct arr* array, int  num);        //获得小标下标为num 的数组内容
bool append_arr(struct arr* array, int num);    //数组尾部追加一个元素
bool insert_arr(struct arr* arr, int x, int num);   //x 为插入的数,num为插入为值的下标
bool delete_arr_num(struct arr* array, int num);
bool delete_arr_x(struct arr* array, int x);
void sort_arr(struct arr* array);
void inversion_arrr(struct arr* array);   // 倒叙排列



main()
{
    struct arr array;
    init_arr(&array, 10);
    append_arr(&array, 1);
    append_arr(&array, 2);
    append_arr(&array, 3);
    insert_arr(&array, 4, 3);
    delete_arr_num(&array, 1);


    show_arr(&array);
    printf("
");
    //get_arr(&array, 0);
}
//参数length 用户指定的数组长度
void init_arr(struct arr* ar, int length) {

    ar->arr_name = malloc(sizeof(int));
    if (ar->arr_name == NULL)
    {
        printf(" malloc memory error!!");
        exit(-1);
    }
    else {
        ar->maxlen = length;
        ar->len = 0;
    }

}
void show_arr(struct arr* ar) {
    int i;
    printf("array lenth is %d 
", ar->len);
    printf("array:    ");

    if (is_empty(ar)) {
        printf(" array is empty!!");
    }
    else
        for (i = 0; i < ar->len; i++)
            printf("%d ", ar->arr_name[i]);
}
bool is_empty(struct arr* ar)
{
    if (ar->len == 0)
        return true;
    else
        return false;
}
bool is_full(struct arr* ar) {
    if (ar->len == ar->maxlen)
        return true;
    else
        return false;
}
//x 为增加的数组元素值
bool append_arr(struct arr* ar, int x) {
    bool app = false;
    if (is_full(ar))
    {
        printf("array is full !");
    }
    else {
        ar->arr_name[ar->len] = x;
        ar->len++;
        app = true;
    }
    return app;
}
int get_arr(struct arr* arr, int  num) {
    if (num > arr->len)
        printf("the number is too big!");
    else
        return arr->arr_name[num];
    //printf("array[%d] = %d ", num, arr->arr_name[num]);
}
bool insert_arr(struct arr* arr, int x, int num) {
    bool ins = true;
    int i;
    if (num > arr->len) {
        ins = false;
        printf("number is too large !
");
    }
    else if (num == (arr->len)) {
        arr->arr_name[arr->len] = x;
        arr->len += 1;
    }
    else {
        for (i = (arr->len); i >= num; i--) 
            arr->arr_name[i] = arr->arr_name[i - 1];
            arr->len += 1;
            arr->arr_name[num] = x;
        
    }
    return ins;
}
bool delete_arr_num(struct arr* arr, int num) {
    int i;
    bool del = true;
    if (is_empty(arr)) {
        printf("array is empty!");
        del = false;
    }

    else if (num > arr->len) {
        printf("number is too large !
");
        del = false;
    }
    else if (num = arr->len) {
        arr->len -= 1;
    }
    else
        for (i=num; i <arr->len-num; i++)
        {
            arr->arr_name[i] = arr->arr_name[i + 1];
            arr->len -= 1;
        }
}

//

 

以上是关于18 数组基本操作(未完成)的主要内容,如果未能解决你的问题,请参考以下文章

错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”

回收站视图未在 android studio 中显示一张卡片视图

Alamofire 文件上传出现错误“JSON 文本未以数组或对象开头,并且允许未设置片段的选项”

GMSMarker 信息窗口内容(片段)未更新

在第6731次释放指针后双重免费或损坏

ListView 未显示在片段中