欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2023-12-27 18:53:51
...

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

  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;
}

 

上一篇:

下一篇: