C语言函数封装数组小练习

题目

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

代码效果

C语言函数封装数组小练习

C语言函数封装数组小练习

分析

我们首先完成对各个函数项目的完成,三个函数采用地址传递的方式
主函数里面完成各个操作的选择
我们必须先初始化数组,然后才能进行清空和倒置数组

代码

#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 ;
}