思路:
根据题意,就是自定义函数,然后进行函数不断调用
# include <stdio.h>
# include <stdlib.h>
void init (int *num, int cs) //初始化函数
{ int i=0;
for (i=0;i<cs;i++)
{
num[i]=2*i-1; //数组初始化,利用for语句进行
}
for (i=0;i<cs;i++)
{
printf ("%d ",num[i]); //利用for语句输出,数值数组在输入输出时需要 一个一个输入输出
}
printf ("\n");
}
/* void print (int *num,int cs) //输出函数
{ int i=0;
for (i=0;i<cs;i++)
{
printf ("%d ",num[i]);
}
}*/
void empty (int* num,int cs) //清空数组数值函数
{ int i=0;
for(i=0;i<cs;i++)
{
num[i]=0; //数组元素数值全赋值为0
}
for (i=0;i<cs;i++)
{
printf ("%d ",num[i]); //输出清零数组
}
printf ("\n");
}
void reverse (int* num,int cs) //数组数值逆置函数
{ int i=0;
int j=0;
int num1=0;
for(i=0,j=cs-1;i<j;i++,j--)
{
num1=num[i]; //首位和末位依次交换数值
num[i]=num[j];
num[j]=num1;
}
for (i=0;i<cs;i++)
{
printf ("%d ",num[i]); //输出逆置数值的数组
}
printf ("\n");
}
int main ()
{
int arr[10]={0};
int sz=sizeof(arr)/sizeof (arr[0]); //计算数组元素个数
init (arr,sz); //主函数调用各函数,分别传递地址实参
//print (arr,sz);
reverse (arr,sz);
//print (arr,sz);
empty (arr,sz);
//print (arr,sz);
system ("pause"); //系统函数防止编译闪退
return 0;
}
此程序中原自定义三个函数,然后分别在主函数中调用。从程序中可看出三个函数中都有for语句构成的数组输出语句,为了提高程序的效率,减少代码量,提高程序可读性。可以定义一个数值数组输出函数,在主函数中多次调用,完成给 定功能。