小程序

作者在 2010-04-10 10:55:22 发布以下内容

/*程序:实现一个数组中的最大的一个放到最后,最小的放在最前

*其他的顺序不变(用三个子函数实现)

*/

#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");
}

默认分类 | 阅读 612 次
文章评论,共0条
游客请输入验证码
浏览51191次
文章分类