/*程序:实现一个数组中的最大的一个放到最后,最小的放在最前
*其他的顺序不变(用三个子函数实现)
*/
#include<stdio.h>
int b[10];
int init(int *array)
{
int i;
printf("Input 10 number:\n");
for(i=0;i<10;i++)
scanf("%d",&array[i]);
}
int *swap(int *a)
{
int i;//tp1,tp2;
int tmp1=*a,tmp2=*a,j,k,n=1;
for(i=0;i<10;i++)
{
if(*(a+i)<tmp1)
{
tmp1=*(a+i);
j=i;
}
if(*(a+i)>tmp2)
{
tmp2=*(a+i);
k=i;
}
}
for(i=0;i<10;i++)
{
if(i==j||i==k)
continue;
b[n]=*(a+i);
n++;
}
*b=tmp1;
*(b+9)=tmp2;
return b;
}
display(int *array)
{
int i;
for(i=0;i<10;i++)
printf("%d ",*(array+i));
}
int main(void)
{
int *b,a[10];
init(a);
b=swap(a);
display(b);
printf("\n");
}
/*这个程序完成上面程序功能,一个函数实现*/
#include<stdio.h>
main(void)
{
int a[10],i,n,k,tmp2,tmp1,b[10],j;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
b[i]=0;
}
tmp1=a[0];
tmp2=a[0];
for(i=0;i<10;i++)
{
if(a[i]<tmp1)
{
tmp1=a[i];
j=i;
}
if(a[i]>tmp2)
{
tmp2=a[i];
k=i;
}
}
for(i=0,n=1;i<10;i++)
{
if(i==j||i==k)
continue;
b[n]=a[i];
n++;
}
b[0]=tmp1;
b[9]=tmp2;
for(i=0;i<10;i++)
printf("%d",b[i]);
printf("\n");
}