7-2 利用指针返回多个函数值 (30分)

本文介绍使用C语言通过两种方式求解输入数组的最大值和最小值:一种是直接在主函数中实现,另一种是通过定义函数来实现。通过对数组元素的逐个比较,更新最大值和最小值变量,最终输出结果。

读入n个整数,调用max_min()函数求这n个数中的最大值和最小值。

输入格式:
输入有两行: 第一行是n值; 第二行是n个数

输出格式:
输出最大值和最小值。

输入样例:
在这里给出一组输入。例如:
5
8 9 12 0 3

输出样例:
在这里给出相应的输出。例如:
max = 12
min = 0
程序1:

#include<stdio.h>
int main()
{
	int *pmax,*pmin;                            //定义指针
    int n,a[10],min,max,i;
    pmax=&max;                                 //将最大值的地址给指针
    pmin=&min;                                  //将最小值的地址给指针
    scanf("%d",&n);
    //依次输入n个数并存放在数组a中
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
  *pmax=a[0];                                   //令最大值等于数组第一个数
  *pmin=a[0];                                    //令最小值等于数组第一个数           
  //依次用数组后面的每个数作比较      
  for(i=1;i<n;i++){
      if(a[i]>*pmax){                          //当数组后面的数大于*pmax时,则取代                  
          *pmax=a[i];
      }
      if(a[i]<*pmin){
          *pmin=a[i];                               //当数组后面的数小于*pmin时,则取代
        }
    }
    printf("max = %d\n",max);           //按照题目要求的格式输出最大最小值
    printf("min = %d",min);
    return 0;
}

程序2(函数):

#include <stdio.h>
void f(int *pmin,int *pmax,int s[],int m)
{
	int i;
	*pmax=s[0];                       //令最大值等于数组第一个数
	*pmin=s[0];                        //令最小值等于数组第一个数  
	//依次用数组后面的每个数作比较 
	for(i=1;i<m;i++){
		if(s[i]>*pmax){               //当数组后面的数大于*pmax时,则取代 
			*pmax=s[i];
		}
		if(s[i]<*pmin){                //当数组后面的数小于*pmin时,则取代
			*pmin=s[i];
		}
	}
}
int main()
{
	int n,a[10],min,max,i;
	scanf("%d",&n);
	//依次输入n个数并存放在数组a中
	for(i=0;i<n;i++){
		scanf("%d",&a[i]);
	}
	f(&min,&max,a,n);                    // 将存放最大最小值的地址,数组a和数组大小n传至函数
	printf("max = %d\n",max);        //按照题目要求的格式输出最大最小值
	printf("min = %d",min);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Starbright.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值