C语言函数封装数组小练习
题目
// 创建一个数组,
// 实现函数init()初始化数组、
// 实现empty()清空数组、
// 实现reverse()函数完成数组元素的逆置。
// 要求:自己设计函数的参数,返回值。
代码效果
分析
我们首先完成对各个函数项目的完成,三个函数采用地址传递的方式
主函数里面完成各个操作的选择
我们必须先初始化数组,然后才能进行清空和倒置数组
代码
#define _CRT_SECURE_NO_WARNINGS
#define N 5
#include <stdio.h>
#include <stdlib.h>
void showmenu() {
printf("-----1.初始化数组-----\n");
printf("-----2.数组倒置-------\n");
printf("-----3.清空数组-------\n");
printf("-----4.退出程序-------\n");
printf("----请输入你的选择----\n");
}
void init(int* arr){
int i;
printf("请初始化这个数组:\n");
for(i = 0;i<N;i++) {
scanf("%d",&arr[i]);
}
printf("初始化成功!\n");
}
void empty(int* arr) {
int i;
printf("清空数组\n");
for(i= 0;i<N;i++){
arr[i] = NULL;
printf("arr[%d]的值为:\n",i,arr[i]);
}
}
void reverse(int* arr) {
int temp;
int i;
for(i = 0;i<N/2;i++) {
temp = arr[i];
arr[i] = arr[N-1-i];
arr[N-1-i] = temp;
}
printf("数组倒置:\n");
for(i = 0;i<N;i++) {
printf("%d ",arr[i]);
}
printf("\n");
}
int main() {
int arr[N];
int choose;
while(1) {
showmenu();
printf("请输入你的选择:\n");
scanf ("%d",&choose);
if(choose == 2||choose == 3){
printf("请先初始化数组!");
printf("\n");
}
else if(choose == 1)
{
init (arr);
printf("请输入你接下来的操作:\n");
scanf ("%d",&choose);
if(choose == 2){
reverse (arr);
printf("请输入你接下来的操作:\n");
scanf ("%d",&choose);
if(choose == 3)
empty(arr);
else if(choose == 4) {
printf("退出程序!\n");
break;
}
}
else if(choose == 3) {
empty(arr);
}
else if(choose == 4) {
printf("退出程序!\n");
break;
}
}
else if(choose == 4) {
printf("退出程序!\n");
break;
}
else {
printf("你的输入有误重新输入!");
printf("\n");
}
}
return 0 ;
}