#include<stdio.h>
#define MAXSIZE 999
void init_array(int *array,int *cnt);
void append(int *array,int *cnt);
void rem(int *array,int *cnt,int pos);
void sort(int *array,int *cnt);
void traversal(int *array,int *cnt);
void reverse(int *array,int *cnt);
int main ()
{
int array[MAXSIZE];//定义一个数组变量
int cnt;//数组的有效元素个数
init_array(array,&cnt);
append(array,&cnt);
append(array,&cnt);
append(array,&cnt);
append(array,&cnt);
append(array,&cnt);
traversal(array,&cnt);
rem(array,&cnt,2);
traversal(array,&cnt);
sort(array,&cnt);
traversal(array,&cnt);
reverse(array,&cnt);
traversal(array,&cnt);
return 0;
}
//初始化操作
void init_array(int *array,int *cnt)
{
int i;
for(i=0;i<MAXSIZE;i++)
{
array[i] = 0;
}
*cnt=0;
printf("数组初始化完成!\n");
}
//在数组中添加元素
void append(int *array,int *cnt)
{
if(*cnt>MAXSIZE)
{
printf("数组已满,请删除一些空间后再添加\n");
exit(0);
}
printf("请输入一个数组元素(int 型):\n");
scanf("%d",&array[*cnt]);
*cnt+=1;
printf("数组成功添加一个元素!\n");
}
//删除指定位置的元素
void rem(int *array,int *cnt,int pos)
{
int i;
printf("开始移除该位置上的元素!\n");
if(pos>*cnt || pos<0)
{
printf("找不到该位置!\n");
exit(0);
}
for(i=pos-1;i<*cnt;i++)
{
array[i]=array[i+1];
}
*cnt-=1;
printf("移除元素完毕!\n");
}
//遍历数组元素
void traversal(int *array,int *cnt)
{
int i;
printf("数组开始遍历:\n");
for(i=0;i<*cnt;i++)
{
printf("%d\n",array[i]);
}
printf("数组遍历完毕!\n");
}
//选择排序数组
void sort(int *array,int *cnt)
{
int i,j,t;
printf("数组排序开始:\n");
for(i=0;i<*cnt;i++)
{
for(j=i+1;j<*cnt;j++)
{
if(array[i]>array[j])
{
t=array[i];
array[i]=array[j];
array[j]=t;
}
}
}
printf("数组排序结束!\n");
}
//翻转数组
void reverse(int *array,int *cnt)
{
int i=0;
int j=*cnt-1;
int t;
printf("数组翻转开始:\n");
while(i<j)
{
t=array[i];
array[i]=array[j];
array[j]=t;
++i;
--j;
}
printf("数组翻转结束!\n");
}
#define MAXSIZE 999
void init_array(int *array,int *cnt);
void append(int *array,int *cnt);
void rem(int *array,int *cnt,int pos);
void sort(int *array,int *cnt);
void traversal(int *array,int *cnt);
void reverse(int *array,int *cnt);
int main ()
{
int array[MAXSIZE];//定义一个数组变量
int cnt;//数组的有效元素个数
init_array(array,&cnt);
append(array,&cnt);
append(array,&cnt);
append(array,&cnt);
append(array,&cnt);
append(array,&cnt);
traversal(array,&cnt);
rem(array,&cnt,2);
traversal(array,&cnt);
sort(array,&cnt);
traversal(array,&cnt);
reverse(array,&cnt);
traversal(array,&cnt);
return 0;
}
//初始化操作
void init_array(int *array,int *cnt)
{
int i;
for(i=0;i<MAXSIZE;i++)
{
array[i] = 0;
}
*cnt=0;
printf("数组初始化完成!\n");
}
//在数组中添加元素
void append(int *array,int *cnt)
{
if(*cnt>MAXSIZE)
{
printf("数组已满,请删除一些空间后再添加\n");
exit(0);
}
printf("请输入一个数组元素(int 型):\n");
scanf("%d",&array[*cnt]);
*cnt+=1;
printf("数组成功添加一个元素!\n");
}
//删除指定位置的元素
void rem(int *array,int *cnt,int pos)
{
int i;
printf("开始移除该位置上的元素!\n");
if(pos>*cnt || pos<0)
{
printf("找不到该位置!\n");
exit(0);
}
for(i=pos-1;i<*cnt;i++)
{
array[i]=array[i+1];
}
*cnt-=1;
printf("移除元素完毕!\n");
}
//遍历数组元素
void traversal(int *array,int *cnt)
{
int i;
printf("数组开始遍历:\n");
for(i=0;i<*cnt;i++)
{
printf("%d\n",array[i]);
}
printf("数组遍历完毕!\n");
}
//选择排序数组
void sort(int *array,int *cnt)
{
int i,j,t;
printf("数组排序开始:\n");
for(i=0;i<*cnt;i++)
{
for(j=i+1;j<*cnt;j++)
{
if(array[i]>array[j])
{
t=array[i];
array[i]=array[j];
array[j]=t;
}
}
}
printf("数组排序结束!\n");
}
//翻转数组
void reverse(int *array,int *cnt)
{
int i=0;
int j=*cnt-1;
int t;
printf("数组翻转开始:\n");
while(i<j)
{
t=array[i];
array[i]=array[j];
array[j]=t;
++i;
--j;
}
printf("数组翻转结束!\n");
}