1、采用书上第 93 页定义的数组的顺序存储表示,编程实现数组的下列基本操作。 (1)构造数组 (2)销毁数组 (3)取数组元素值 (4)给数组元素赋值 用C语言输出此完整可运行代码
时间: 2024-11-13 21:23:59 浏览: 22
在C语言中,我们可以使用结构体来实现数组的顺序存储表示,并编写函数来完成这些基本操作。首先,我们定义一个结构体用于存储数据,然后创建一个动态数组(通过指针和`malloc`分配内存)。以下是完整的C代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义数组元素的数据类型
typedef struct {
int value; // 数组元素存储整数值
} ArrayElement;
// 动态创建数组
ArrayElement* createArray(int size) {
if (size <= 0) {
printf("Error: Size should be positive.\n");
return NULL;
}
ArrayElement* array = (ArrayElement*) malloc(size * sizeof(ArrayElement));
if (array == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
return array;
}
// 销毁数组
void destroyArray(ArrayElement* arr, int size) {
free(arr);
}
// 取数组元素值
int getElement(const ArrayElement* arr, int index) {
if (index >= 0 && index < size(arr)) {
return arr[index].value;
} else {
printf("Index out of bounds.\n");
return -1;
}
}
// 给数组元素赋值
void setElement(ArrayElement* arr, int index, int value) {
if (index >= 0 && index < size(arr)) {
arr[index].value = value;
} else {
printf("Index out of bounds.\n");
}
}
// 获取数组长度
int size(const ArrayElement* arr) {
return sizeof(*arr) / sizeof(ArrayElement);
}
int main() {
int size = 5; // 假设我们要创建一个大小为5的数组
ArrayElement* myArray = createArray(size);
// 使用数组
for (int i = 0; i < size; i++) {
int val = 10 + i; // 随机赋值
setElement(myArray, i, val);
printf("Element at index %d: %d\n", i, getElement(myArray, i));
}
// 销毁数组
destroyArray(myArray, size);
return 0;
}
```
阅读全文