概述
利用C语言可以实现对数组的各种操作,如输入数组元素,输出数组元素、求数组元素平均值、输出数组元素最大值、输出数组元素最小值、查找某数值元素是否存在、给数组元素排序等功能,接下来,我们对这些功能进行一一实现。
代码编写
头文件、声明
这是每个C语言程序都不能缺少的部分,本程序相关头文件及声明如下:
#include <stdio.h>
void input(int array[10],int n);
void output(int array[10],int n);
int max(int array[10],int n);
int min(int array[10],int n);
double pjz(int array[10],int n);
int find(int array[10],int n);
void px(int array[10],int n);
主函数
为了方便阅读,上述各个功能都编写对应的子函数进行实现,在主函数中我们只进行子函数调用及相关变量的定义、子函数参数传入,具体代码如下:
int main()
{
int array[10]={0};
int i,n,h;
do
{
printf("请输入数组元素总数n(0<n<=10):\n");
scanf("%d",&n);
}while(n<=0||n>10);
input(array,n);
h=find(array,n);
output(array,n);
px(array,n);
printf("数组元素的平均值是:%f\n",pjz(array,n));
printf("数组元素最大值为:%d\n",max(array,n));
printf("数组元素最小值为:%d\n",min(array,n));
if(h==-1)
printf("你所寻找的元素不存在!\n");
else
printf("你所寻找的元素的下标为:%d\n",h);
printf("你所输入的元素按从小到大排序为:\n");
for(i=0;i<n;i++)
printf("%8d",array[i]);
printf("\n");
return 0;
}
输入、输出功能子函数
输入功能子函数实现引导用户输入数组元素并转存到已定义的数组中的功能,具体代码如下:
void input(int array[10],int n)/*函数功能:输入元素*/
{
int i;
printf("请输入%d个数组元素:\n",n);
for (i=0;i<n;i++)
scanf("%d",&array[i]);
}
同理,输出功能子函数实现将数组元素显示在屏幕上的功能,具体代码如下:
void output(int array[10],int n)/*函数功能:输出函数*/
{
int i;
printf("您输入的数组元素是:\n");
for (i=0;i<n;i++)
printf("%8d",array[i]);
printf("\n");
}
数组元素最大/小值寻找
下面这个子函数的功能是寻找数组的最大值,运用的是遍历数组的方法,首先将数组的第一个元素视为最大值,并将第一个元素的值存到已经定义的变量“max”中,然后对数组元素进行遍历,每次比较,都将两者中数值较大的元素赋值给变量“max”,这样就能实现最大值寻找的功能了。具体代码如下:
int max(int array[10],int n)/*函数功能:求数组元素最大值*/
{
int i,max;
max=array[0];
for(i=1;i<n-1;i++)
if(max<array[i])
max=array[i+1];
return max;
}
同理,可以运用相同的方法实现寻找数组最小值的功能,具体代码如下:
int min(int array[10],int n)/*函数功能:求数组元素的最小值*/
{
int i,min;
min=array[0];
for(i=1;i<n-1;i++)
if(min>array[i])
min=array[i];
return min;
}
“求数组元素平均值”功能编写
这个子函数实现数组元素平均值的计算,实现思路是先对数组元素进行求和,再除以数组元素个数(数组长度),具体代码如下:
double pjz(int array[10],int n)/*函数功能:求平均值*/
{
double sum=0 ,ave;/*注意:平均值与元素合应定义为双精度型,防止出现错误*/
int i;
for(i=0;i<n;i++)
sum+=array[i];
ave=sum/n;
return ave;
}
“寻找元素”功能实现
这个子函数实现的功能是引导用户输入其寻找的元素,并查找此数值元素是否存在,若存在,则输出对应元素的下标,否则则提示用户“你所寻找的元素不存在”。具体代码如下:
int find(int array[10],int n)/*函数功能:寻找元素*/
{
int a,b,i,flag;
flag=-1;
printf("请输入你所寻找的元素:\n");
scanf("%d",&a);
for (i=0;i<n;i++)
if(a==array[i])
flag=i+1;
return flag;
}
数组元素排序
这个子函数实现的功能是对数组元素以某种规则进行排序并将排序后的数组送屏幕显示(下列代码采用的排序规则是数组元素由小到大进行排列),采用的排序方法为选择排序法,具体代码如下:
void px(int array[10],int n)/*函数功能:选择排序法*/
{
int i,j,temp;
for(i=0;i<n-1;i++)
for(j=n-1;j>i;j--)
if(array[j]<array[j-1])
{
temp=array[j-1];
array[j-1]=array[j];
array[j]=temp;
}
}
如果要采取由大到小的排序方式,只需要对上述代码稍加进行修改即可。
运行效果图
将上述代码整合到一个.c文件中并运行,效果图如下:
后记
这个程序还可以进行各种扩展,如在寻找到用户所寻找的数组元素后,可以对该元素进行各种操作等,欢迎各位伙伴留言探讨~