C语言日记之菜单实现数组的综合运用(输入,输出,最大值,最小值,平均值,查找元素,排序)
该篇文章关于数组的基础运用
属于初学c语言的新手教学
#include<stdio.h>
#define N 10 //默认数组长度为10 想改变数组长度改变N大小即可
void arrayscan(int array1[])//数组输入
{
int i,j;
for(i=0;i<N;i++)
{
scanf("%d",&array1[i]);
}
}
void arrayput(int array1[])//数组输出
{
int i;
for(i=0;i<N;i++)
{
printf("%d\t",array1[i]);
}
}
int arraymax(int array1[])//最大值
{
int i,max;
max=array1[0];
for(i=0;i<N;i++)
{
if(array1[i]>max)
{
max=array1[i];}
}
return max;
}
int arraymin(int array1[])//最小值
{
int i,min;
min=array1[0];
for(i=0;i<N;i++)
{
if(array1[i]<min)
{
min=array1[i];}
}
return min;
}
double arrayaverage(int array1[])//平均值
{
double average;
int sum=0,i;
for(i=0;i<N;i++)
{
sum+=array1[i];
}
average=sum/10.0;
return average;
}
void arraysearch(int array1[],int n)//元素查找
{
int i=0;
while(i<N)
{
if(n==array1[i])
break;
i++;
}
if(i<N)
{
printf("找到的元素为数组的第%d位",i+1);}
else
printf("没有找到");
}
void arraypai(int array1[])//排序采用冒泡排序法
{
int i,j,temp;
for(i=0;i<N-1;i++)
for(j=N-1;j>1;j--)
{
if (array1[j]<array1[j-1])
{
temp=array1[j-1];
array1[j-1]=array1[j];
array1[j]=temp;
}
}
}
int main()
{
int array1[N];
int i,j,n,m;
printf("请输入该数组的10个元素:");
arrayscan(array1);
printf("该数组的10个元素如下:\n");
arrayput(array1);
printf("\n\n\n");
printf("该程序有4个功能:1对应最大值,2对应最小值,3对应平均值,4对应查找数组,5对应数组元素排序");
while(1)//菜单的实现
{
printf("请输入功能编号:");
do{
scanf("%d",&n);
if(n<0||n>5)
{
printf("请重新输入:");
}
}while(n<0||n>6);
switch(n)//switch case做选择
{
case 1:
printf("该数组的最大值为:");
printf("%d",arraymax(array1));
printf("\n\n\n");
break;
case 2:
printf("该数组的最小值为:");
printf("%d",arraymin(array1));
printf("\n\n\n");
break;
case 3:
printf("该数组的平均值值为:");
printf("%f",arrayaverage(array1));
printf("\n\n\n");
break;
case 4:
printf("请输入要查找的值:");
scanf("%d",&m);
arraysearch(array1,m );
printf("\n\n\n");
break;
case 5:
printf("数组排序后的顺序为(排序之后再查找元素就是排序后数组元素的位置):");
arraypai(array1);
arrayput(array1);
printf("\n");
break;
}
}
}
如上图,输入一个数组的元素,分别按下功能编号就可以进行操作,非常方便快捷。
作者shawn
202012.17
联系qq:965798711