你这个 有滴 基本语法都错了 还有一些 数组的小细节也有问题 参数 传值 还得再好好 学学
对了 你排序写的啥意思 我没看懂 我给你 改成 冒泡排序了 你看一下 有些地方也改了 你看看 行不行/*在主函数中定义一维数组int array[10],自定义以下函数:输入数组元素,
输出数组元素、
求数组元素平均值、
输出数组元素最大值、
输出数组元素最小值、
查找某数值元素是否存在(若存在,请输出下标)、
给数组元素排序,要求在主函数中对各子函数进行调用和测试。*/
#include<stdio.h>
void input(int *array,int n);
void output(int array[],int n);
void find(int array[],int n);
void sort(int array[],int n);
int maxnum(int array[],int n);
int minnum(int array[],int n);
double ave(int array[],int n);
int main()
{
int array[10],n,x,y;
double z;
scanf("%d",&n);
input (array,n);
output(array,n);
x=maxnum(array,n);
y=minnum(array,n);
z=ave(array,n);
find(array,n);
sort(array,n);
return 0;
}
void input(int *array,int n)
{
int i;/*n为实际输入个数*/
for(i=0;i < n;i++)
{
scanf("%d",&array[i]);
}
return;
}
void output(int array[],int n)
{
int i;
for(i=0; i < n;i++)
printf("%d ",array[i]);
printf("\n");
return;
}
double ave(int array[],int n)
{
int sum=0,i;
double ave;
for(i=0;i<n;i++)
{
sum+=array[i];
}
printf("average is %lf\n",ave=(double)sum/n);
return ave;
}
int maxnum(int array[],int n)
{
int i,max;
max=array[0];
for(i=1;i<n;i++)
{if(array[i]>max)
{
max=array[i];
}
}
printf("max is %d\n",max);
return max;
}
int minnum(int array[],int n)
{
int i,min;
min=array[0];
for(i=1;i<n;i++)
{
if(array[i]<min)
{min=array[i];
}
}
printf("min is %d\n",min);
return min;
}
void find(int array[],int n)
{
int i,x,t=0;
printf("请输入查找值: ");
scanf("%d",&x);
for(i=0;i<n;i++)
{
if(array[i] == x)
{
t = i;
printf("数组下标为%d\n",t);
break;
}
}
if(array[i] != x)
printf("无法查到\n");
}
void sort(int array[],int n)
{
int i,j;
int temp;
for(i = 0; i < n; i++)
{
for(j = 0; j <n-1-i; j++)
{
if(array[j] > array[j+1])
{
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
printf("从小到大排序为:");
for(i=0;i<n;i++)
printf(" %d",array[i]);
putchar('\n');
return;
}
|