思路分析:
1.创建函数init()时,由用户输入元素个数和元素内容,需要创建一个未知大小的数组,
int *arr = (int *)malloc(sizeof (int) * n); // 申请一个大小为n的int数组
创建好了由用户输入个数和内容
2.empty()把数组中的每一项的值变为0.
3.reverse()数组中的元素逆置,第一项和最后一项交换数值,第二项和倒数第二项交换数值,以此类推;
因为要改变主函数中数组的值,所以要用指针,所以函数中引用参数时使用int* 来引入数组;
最后附上代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void init(int* arr, int len) {
printf("请初始化数组:\n");
//输入元素的值
for (int i = 0; i <= len; ++i) {
scanf("%d", &arr[i]);
}
for (int i = 0; i <= len; ++i) {
printf("arr[%d]=%d ", i, arr[i]);
}
printf("\n");
}
void Empty(int* arr,int len) {
//令每一项等于0
for (int i = 0; i <= len; ++i) {
arr[i] = 0;
}
for (int i = 0; i <= len; ++i) {
printf("arr[%d]=%d ", i, arr[i]);
}
printf("\n");
}
void reverse(int* arr, int len) {
//逆置数组
for (int i = 0; i <=len/2; ++i) {
int tem = 0;
tem = arr[i];
arr[i] = arr[len - i];
arr[len - i] = tem;
}
for (int i = 0; i <= len; ++i) {
printf("arr[%d]=%d ", i, arr[i]);
}
printf("\n");
}
int main() {
int n;
printf("请输入元素个数\n");
scanf("%d", &n);
int *arr = (int *)malloc(sizeof(int) * n); // 申请一个大小为n的int数组
int len = n - 1;
init(&arr, len);
printf("逆置数组\n");
reverse(&arr, len);
printf("清空数组\n");
Empty(&arr, len);
free(arr);
system("pause");
return 0;
}