找出数组中最大最小数(用指针)
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;
}
写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;
}
相关文章推荐
- C语言:通过返回指针的形式找出数组的最大值和最小值
- 找出一个数组中两个数的最大差值和最小差值(最接近的数)
- 在规定次数内找出数组中最大值和最小值
- 死磕==同时找出数组中得最大值和最小值
- 从一个数组中同时找出最大最小数-算法导论第九章
- 输入一组整数,找出这组数中最大值与最小值的下标,在主调函数中输出最大值和最小值,用指针实现。
- [原]Java面试题-输入一个整型数组,找出最大值、最小值,并交换。
- 【C语言】找出数组中的最大值,最小值,之差
- 【十一】找出一组数组中最大值、最大值的角标、最小值、最小值的角标及平均数
- 南邮编程在线编程题十一:指针形参的使用,找数组中的最大最小元素值
- 通过随机数生成办法,向int num[10][10]的数组 中存入数据并找出数组的最大、最小值及其下标。
- 实验9 指针1 1、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依据。
- 3.创建一个20个大小的随机数组,找出这组数组的最大值和最小值, 并且标出最大数和最小值的位置
- 电子科技大学推免复试题:利用递归方法找出一个数组中的最大值和最小值
- 实验九指针1、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依据。
- 同时找出在数组中的最大值、最小值
- 同时找出数组的最大值和最小值,要求时间复杂度为o(n)
- 找出整型数组中最大和最小值及其所在位置
- 实验9 指针1 、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依
- C指针实现找出一个数组中的最大值和次大值