源代码
1.头文件(array.h)
/*
// 数组常用操作
// 1.init
// 2.random_access
// 3.insert/push
// 4.remove/pop
// 5.traverse
// 6.find
// 7.sort
*/
// lib_std
#include <assert.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// macro
#define N 13
#define arrData_t int
// func_declaration
void DefaultInitArr(arrData_t arrName[], size_t sz);
void RandomInitArr(arrData_t arrName[], size_t sz);
void TraverseArr(const arrData_t arrName[], size_t sz);
void SortArr(arrData_t arrName[], size_t sz);
int RandomAccessArr(arrData_t arrName[], size_t sz);
int FindArr(const arrData_t arrName[], size_t sz, int target);
void InsertArr(arrData_t arrName[], size_t sz, int pos, int data);
void RemoveArr(arrData_t arrName[], size_t sz, int pos);
2.源文件(main.c和array.c)
#include "array.h"
void DefaultInitArr(arrData_t arrName[], size_t sz) {
for (int i = 0; i < sz; i++) {
arrName[i] = 0;
}
}
void RandomInitArr(arrData_t arrName[], size_t sz) {
for (int i = 0; i < sz; i++) {
arrName[i] = rand() % 100;
}
}
void TraverseArr(const arrData_t arrName[], size_t sz) {
for (int i = 0; i < sz; i++) {
printf("%d ", arrName[i]);
}
printf("\n");
}
void SortArr(arrData_t arrName[], size_t sz) {
int flag = 1;
for (int i = 0; i < sz - 1; i++) {
for (int j = 0; j < sz - 1 - i; j++) {
if (arrName[j] > arrName[j + 1]) {
arrData_t tmp = arrName[j];
arrName[j] = arrName[j + 1];
arrName[j + 1] = tmp;
flag = 0;
}
}
if (1 == flag) {
break;
}
}
}
int RandomAccessArr(arrData_t arrName[], size_t sz) {
int index = rand() % sz;
return arrName[index];
}
int FindArr(const arrData_t arrName[], size_t sz, int target) {
for (int i = 0; i < sz; i++) {
if (target == arrName[i]) {
return i;
}
}
return -1;
}
void InsertArr(arrData_t arrName[], size_t sz, int pos, int data) {
assert(pos < sz && pos >= 0);
for (int i = sz - 2; i >= pos; i--) {
arrName[i + 1] = arrName[i];
}
arrName[pos] = data;
}
void RemoveArr(arrData_t arrName[], size_t sz, int pos) {
assert(pos < sz && pos >= 0);
for (int i = pos; i < sz - 1; i++) {
arrName[i] = arrName[i + 1];
}
arrName[sz - 1] = 0;
}
#include "array.h"
int main(void) {
srand((unsigned int)time(NULL));
int arr[N];
// DefaultInitArr(arr, N);
RandomInitArr(arr, N);
printf("bf:\n");
TraverseArr(arr, N);
SortArr(arr, N);
printf("af:\n");
TraverseArr(arr, N);
int ret1, ret2;
ret1 = RandomAccessArr(arr, N);
printf("random:%d\n", ret1);
InsertArr(arr, N, 0, 666);
TraverseArr(arr, N);
ret2 = FindArr(arr, N, 666);
printf("index:%d\n", ret2);
RemoveArr(arr, N, 0);
TraverseArr(arr, N);
return 0;
}
3.运行结果
linux下vscode构建cmake项目
4.结语
如果这篇博客帮助到您,记得点赞收藏哦!你的点赞和收藏是我更新的动力!!!想看更多C语言相关问题,关注我吧 !!!