您的位置:首页 > 其它

创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。 要求:自己设计函数的参数,返回值。

2019-04-02 16:21 471 查看

思路分析:
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐