找出数组中最大最小数(用指针)

来源:互联网 发布:笔记本锁定触摸屏软件 编辑:程序博客网 时间:2024/06/10 07:26
输入10个整数,将其最小的数与第一个数对换,把最大的数与最后一个数对换,
写3个函数完成        1,输入10个数
                                  2,进行处理
                                  3,输出结果
程序如下:
#include "stdio.h"
#define N 10
int max,min,maxindex,minindex;//max,min分别为最大最小值,maxindex,minindex分别为最大最小值索引
void input(int *a,int n);//输入函数  
void show(int *a,int n);//输出函数
void max_min(int *a,int n);//求最大最小值以及索引的函数
void exchange(int *x,int *y,int *w,int *z);//交换函数
void main ()
{
 int a[N];
 printf("please input 10 nunbers:/n");
    input(a,N);
 max_min(a,N);
 printf("max=%d,min=%d,maxindex=%d,minindex=%d",max,min,maxindex,minindex);
 exchange(&a[0],&a[minindex],&a[N-1],&a[maxindex]);
 printf("/n");
 show(a,N);
 printf("/n");
}
void input(int *a,int n)
{
 int *p; 
 for (p=a;p<a+n;p++)
 {
  scanf("%d",p);
 }
}
void show(int *a,int n)
{
 int *p;
 for (p=a;p<a+n;p++)
 {
  printf(" %d",*p);
 }
}
void max_min(int *a,int n)
{
 int *p,i;
 max=min=a[0];
 p=a;
 for (i=1;i<n;i++)
 {
  if(*(p+i)>max)
  {
      max=*(p+i);
      maxindex=i;
  }
  else if (*(p+i)<min)
  {
      min=*(p+i);
      minindex=i;
  }
 }
 return;
}
void exchange(int *x,int *y,int *w,int *z)
{
 int temp1,temp2;
 temp1=*x;
 *x=*y;
 *y=temp1;
 temp2=*w;
 *w=*z;
 *z=temp2;
}
原创粉丝点击