# include<stdio.h>
# include<string.h>
void max(int *a,int b);
void min(int *a,int b);
void mean(int *a,int b);
void median(int *a,int b);
void sort(int *a,int b);
char *ch[4]={"[max]","[min]","[mean]","[median]"};
main()
{
int a[4][10],n,b[10];
char op[4][10];
void (*p[4])(int*,int);
int i=0,j=0,k=0,t=0,h=0,m=0,v=1;
p[0]=max;
p[1]=min;
p[2]=mean;
p[3]=median;
printf("input the number: ");/*请输入要测试的集合数目*/
scanf("%d",&n);
while(i<n)
{
printf("input the way of testing array: ");/*请输入你要测试的方式(用中括号括起来)*/
scanf("%s",op[k]);
printf("%d",v++);
printf(" array: ");/*输入第N个集合的元素个数*/
scanf("%d",&m);
for(j=0;j<m;j++)
{
scanf("%d",&a[i][j]);/*输入集合的元素*/
}
b[h]=j;
j=0;
++i;
++k;
h++;
m=0;
}
i=0;
for(i=0;i<n;i++)
{
k=0;
t=0;
while(k<4)
{
if((strcmp(op[i],ch[k++]))==0)
{
t=k-1;
break;
}
}
p[t](a[i],b[i]);
}
getch();
}
void sort(int *a,int b)
{
int i=0,j,temp;
for(i=0;i<b-1;i++)
for(j=i+1;j<b;j++)
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
void max(int *a,int b)
{
int m,i;
sort(a,b);
m=a[b-1];
printf("{");
printf("%d",m);
printf("}");
for(i=0;i<b;i++)
printf("%d ",a[i]);
printf("\n");
}
void min(int *a,int b)
{
int m,i;
sort(a,b);
m=a[0];
printf("{");
printf("%d",m);
printf("}");
for(i=0;i<b;i++)
printf("%d ",a[i]);
printf("\n");
}
void mean(int *a,int b)
{
int i;
int average=0,sum=0;
sort(a,b);
for(i=0;i<b;i++)
sum=sum+a[i];
average=sum/b;
printf("{");
printf("%d",average);
printf("}");
for(i=0;i<b;i++)
printf("%d ",a[i]);
printf("\n");
}
void median(int *a,int b)
{
int m;
int i;
sort(a,b);
m=(a[0]+a[b-1])/2;
printf("{");
printf("%d",m);
printf("}");
for(i=0;i<b;i++)
printf("%d ",a[i]);
printf("\n");
}
出现的界面第一行先输入集合的个数,回车,,
第二行输入要测试的方式,回车
第三行输入第1个集合元素个数,,回车,
第四行输入第1个集合的元素,回车,,
依次这样输入下去,,,可以得出结果,,,
输入比较烦琐,不过基本符合你的要求了,,