题目描述:
创建一个数组, 实现以下功能:
1)init()初始化数组
2)empty()清空数组
3)reverse()数组元素的逆置。
要求:自己设计函数的参数,返回值。
主要思想:
数组的空间大小需要根据用户的需要开辟,用malloc即可完成
printf("你想要数组的大小是:");
scanf("%d",&n);
arr = (int*)malloc(n);
初始化:即给数组赋初始值
for (i = 0; i < len; i++)
{
scanf("%d", &a[i]);
}
清空数组:即将数组中元素置为0
for (i = 0; i < len; i++)
{
a[i] = 0;
}
逆置数组:将首末元素分别交换
for (i = 0; i < len / 2; i++)
{
temp = a[i];
a[i] = a[len-i-1];
a[len-i-1] = temp;
}
建议再写一个打印数组的函数:
void Print(int *a,int len)
{
for (i = 0; i < len; i++)
{
printf("%d", a[i]);
}
printf("\n");
}
完整代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdlib.h>
#include <stdio.h>
void init(int *a,int len)
{
int i = 0;
for (i = 0; i < len; i++)
{
scanf("%d", &a[i]);
}
printf("初始化后的数组为:");
for (i = 0; i < len; i++)
{
printf("%d", a[i]);
}
printf("\n");
}
void empty(int *a, int len)
{
int i = 0;
for (i = 0; i < len; i++)
{
a[i] = 0;
}
printf("清空后的数组为:");
for (i = 0; i < len; i++)
{
printf("%d", a[i]);
}
printf("\n");
}
void reverse(int *a, int len)
{
int i = 0;
int temp = 0;
for (i = 0; i < len / 2; i++)
{
temp = a[i];
a[i] = a[len-i-1];
a[len-i-1] = temp;
}
printf("逆置后的数组为:");
for (i = 0; i < len; i++)
{
printf("%d", a[i]);
}
printf("\n");
}
int main()
{
int *arr;
int n = 0;
printf("你想要数组的大小是:");
scanf("%d",&n);
arr = (int*)malloc(n); //按需要开辟数组的空间
printf("初始化数组:");
init(arr,n);
reverse(arr, n);
empty(arr,n);
system("pause");
return 0;
}