您的位置:首页 > 其它

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

2007-08-02 11:18 281 查看
输入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
;
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐