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