BASIC-4 基础练习 数列特征(函数的调用、数组作为函数参数)

问题描述
给出n个数,找出这n个数的最大值,最小值,和。

输入格式
第一行为整数n,表示数的个数。

第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。

输出格式
输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。
样例输入
5
1 3 -2 4 5
样例输出
5
-2
11
数据规模与约定
1 <= n <= 10000。

说明:运用了函数的调用、数组作为函数参数
注意:调用函数时,函数的数组参数用数组名(地址)。在蓝桥杯的编译环境中可以对数组的大小动态定义,如下:

	int n;
	cin>>n;
	int m[n];
#include<stdio.h>
int main()
{
	int max(int n,int m[]);		//函数的声明
	int min(int n,int m[]);
	int sum(int n,int m[]);

	int n,i,m[10000]={0};
	scanf("%d",&n);				
	for(i=0;i<n;i++)			//数组赋值
		scanf("%d",&m[i]);
	
	printf("%d\n",max(n,m));	//函数中是数组名
	printf("%d\n",min(n,m));
	printf("%d\n",sum(n,m));
	return 0;
					
}
int max(int n,int m[10000])		//求最大值函数
{
	int x=m[0],i;
	for(i=0;i<n;i++)
		x=(x<m[i])?m[i]:x;
	return x;
}

int min(int n,int m[10000])		//求最小值函数
{
	int x=m[0],i;
	for(i=0;i<n;i++)
		x=(x>m[i])?m[i]:x;
	return x;
}

int sum(int n,int m[10000])		//求和函数
{
	int x=0,i;
	for(i=0;i<n;i++)
		x=x+m[i];
	return x;
}

说明:将上代码简化

#include<stdio.h>
int main()
{
	int n,i,m[10000]={0},max,min,sum=0;
	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%d",&m[i]);
	max=m[0];
	min=m[0];
	for(i=0;i<n;i++)
	{
		max=(max<m[i])?m[i]:max;
		min=(min>m[i])?m[i]:min;
		sum=sum+m[i];
	}
	printf("%d\n",max);
	printf("%d\n",min);
	printf("%d\n",sum);
	return 0;			
}


说明:将max,min分别赋值为最大和最小,从而只用一个循环,代码长度最小

#include<stdio.h>
int main()
{
	int n,i,m[10000]={0},max=0x80000001,min=0x7fffffff,sum=0;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&m[i]);
		max=(max<m[i])?m[i]:max;
		min=(min>m[i])?m[i]:min;
		sum=sum+m[i];
	}
	printf("%d\n",max);
	printf("%d\n",min);
	printf("%d\n",sum);
	return 0;			
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值