从键盘任意输入是个整数,用指针变量作为函数参数编程计算最大值和最小值,并返回他所在的数组的位置

#include <stdio.h>
#define N 10 //使用宏定义规定数组的大小 为10 
int FindMax(int array[],int n,int *MaxPos);//声明函数 
int FindMin(int array[],int n,int *MinPos);//声明函数 
main(void){
	int array[10],MaxValue,MinValue,MaxPos,MinPos,i;
	printf("请输入数组:");
	for(i=0;i<N;i++){
		scanf("%d",&array[i]);//循环输入数组的所有的数 
	}
	printf("数组为:");
	for(i=0;i<N;i++){
		printf("%2d",array[i]);
	}//循环遍历输出数组 
	MaxValue=FindMax(array,N,&MaxPos);//调用下面写的函数 
	MinValue=FindMin(array,N,&MinPos);//调用下面写的函数 
	printf("\n最大值为:%d,在第%d个位置",MaxValue,MaxPos+1);
	printf("\n最小值为:%d,在第%d个位置",MinValue,MinPos+1); //函数下标是从0开始的,所以要用下标+1表示所在的位置 
	
}
int FindMax(int array[],int n,int *MaxPos){//这是返回最大值的函数,定义了数组,数组的大小,最大的数所在下标的地址 
	int max=array[0];//假设最大的数为数组的第一个元素 
	*MaxPos=0;//给指针赋初值,所以下标的地址也为第一个元素的地址 
	int i;
	for(i=0;i<N;i++){
		if(array[i]>max){
			max=array[i];
			*MaxPos=i;
		}//循环遍历,如果下标为i的数组大于最大值那么最大值就为array[i], 最大的数所在下标的地址就为i 
	}
	return max;//最后返回最大值 
}
int FindMin(int array[],int n,int *MinPos){
	int min=array[0];
	*MinPos=0;
	int i;
	for(i=0;i<N;i++){
		if(array[i]<min){
			min=array[i];
			*MinPos=i;
		}
	}
	return min;
}//最小值和最大值相反 
  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值