输入n个数字,并求出它们中间的最大值与最小值

做题觉得简单,拿着编译器一编程就各种小毛病出来了,这样下去的进度就太慢了。 

  1.  既然是n个数,那么肯定就要有输入,定义一个数组a[5] 来接收从键盘输入的数字,怎么将接收的数值依次传入数组呢?利用for循环,将其依次存入a数组。输入完成,接下来就是要实现具体功能了
  2. 将问题模块化,把功能与主函数独立开来,建立一个新的函数,其功能为求函数的最大最小值。比如建立一个fun()函数,需要传参,传什么参数呢?刚才从键盘输入的数都放到数组里面去了,函数当然也需要用到这些,所以数组需要传到fun()函数,当然,传的是数组名a,另外数组名的个数也不能少,所以fun()需要传入两个参数,于是函数调用格式为:fun(a,5),得到函数定义fun(int a[],int i){函数体}
  3. 下面可以开始编写主要功能了。在fun()中,因为会进行数组的比较才能得出最大最小值,所以,循环是少不了的。这个循环的作用为遍历数组。定义变量,循环需要一个变量i,用于与和i进行比较, 这里实际是与传过来的实参5进行比较。定义max用来存储最大值,定义min用来存储最小值。这里注意了,实参与形参之间为单向的值传递。所以我们需要将max,min定义到fun()函数外面,作为全局变量,这样当fun()函数结束后,max、min变量内存才不会被释放,相对应的值也就会被保留。
  4. 将max=a[0],min=a[0].作用为给max、min一个初始的值。定义一个循环,开始进行比较。在循环体内可以给一个if语句,当a[j]>max时,则max=a[j]; 当a[j]>min时min=a[i];这样经过循环遍历,就可以完整得出max、与min。至此,求最大值与最小值的功能就实现了。

相关代码: 

#include <stdio.h>
int max,min;		//定义全局变量max、min 
void fun(int a[],int i)
{
	max=a[0];min=a[0];	//将a[0]赋值给max与min 
	for(int j=1;j<i;j++){
		if (max<a[j]) max=a[j];	//如果max小于a[j],则把a[j]赋值给max 
		if(min>a[j]) min=a[j];	//如果min大于a[j],则把a[j]赋值给min 
	}

}

int main(){
	int i;
	int a[5];
	printf("请输入数字:\n");
	for(i=0;i<5;i++){
		scanf("%d",&a[i]);	//将输入的数字存入数组 
	}
	fun(a,5);	//调用函数 
	printf("%d,%d\n",max,min);
	
	return 0;
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值