#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;
}//最小值和最大值相反
从键盘任意输入是个整数,用指针变量作为函数参数编程计算最大值和最小值,并返回他所在的数组的位置
最新推荐文章于 2023-04-05 09:20:24 发布