| 
 | 
 
 
发表于 2018-11-26 09:25:46
|
显示全部楼层
 
 
 
你这个 有滴  基本语法都错了  还有一些 数组的小细节也有问题  参数 传值 还得再好好 学学 
对了  你排序写的啥意思 我没看懂    我给你 改成 冒泡排序了  你看一下    有些地方也改了 你看看 行不行 
- /*在主函数中定义一维数组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;
 
 - }
 
  复制代码 |   
- 
 
 
 
 
 
 
 
 |