题目:
创建一个数组,
实现函数init()初始化数组、
实现empty()清空数组、
实现reverse()函数完成数组元素的逆置。
要求:自己设计函数的参数,返回值。
思路:此题考查的是对函数调用的实现,注意初始化函数为给函数赋予初值,而清空函数则是直接给数组赋值为0;逆置函数则是将输入的数字反过来输出在屏幕上,所以综合来说比较简单,可以做一个菜单来提示用户可选择的操作,再实现具体的操作。
代码如下:(C语言运行于VS2013)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 初始化函数
int init(int arr[], int leth){
printf("请输入数字:\n");
for (int i = 0; i < leth; i++){
scanf("%d", &arr[i]);
}
printf("这几个数字分别是:\n");
for (int i = 0; i < leth; i++){
printf("%d ", arr[i]);
}
return 0;
}
//清空函数
int empty(int arr[], int leth){
printf("这几个数字分别是:\n");
for (int i = 0; i < leth; i++){
printf("%d ", arr[i] = 0);
}
return 0;
}
//逆置函数
int reverse(int arr[], int leth){
printf("逆置后的数组是:\n");
int temp = 0;
for (int i = 0; i < leth - i; i++){
temp = arr[i];
arr[i] = arr[leth - i - 1];
arr[leth - i - 1] = temp;
}
for (int i = 0; i < leth; i++){
printf("%d ", arr[i]);
}
return 0;
}
//菜单函数
void menu(){
printf("****************\n");
printf("**1.数组初始化**\n");
printf("**2.数组清空 ***\n");
printf("**3.数组逆置 ***\n");
printf("**4.清空屏幕 ***\n");
printf("**0.退出程序 ***\n");
printf("****************\n");
}
int main(){
int arr[10];
int input = 0;
int leth = 0;
menu();
printf("请输入您想要操作的数字长度(1~10):\n");
scanf("%d", &leth);
begin:
printf("请选择您想要执行的操作:\n");
scanf("%d", &input);
switch (input){
case 0:
printf("程序退出,感谢使用!\n");
break;
case 1:
init(arr, leth);
printf("\n");
goto begin;
case 2:
empty(arr, leth);
printf("\n");
goto begin;
case 3:
reverse(arr, leth);
printf("\n");
goto begin;
case 4:
system("cls");
menu();
goto begin;
default:
printf("选择错误,请重新选择\n");
goto begin;
}
system("pause");
return 0;
}