查找大于某个数的最小数

调用自定义函数Input从键盘读入10个数到arrA中,再读入一个数num(这些数均≥0,且无重复数),然后调用自定义函数Min在数组arrA中查找大于num的最小数,输出查找结果,没有找到输出“not Find!”

函数接口定义:

void Input(int a[],int m);
int Min ( int a[ ], int m, int num);

Input函数 将数据读入数组中; Min函数 返回数组中的大于num的最小数,没有返回-1

裁判测试程序样例:


#include <stdio.h>

void Input(int a[],int m);
int Min(int a[],int m, int num); 

int main(void)
{
    int arrA[10], num, minA;

    Input(arrA,10);

    scanf("%d", &num);

    minA = Min(arrA,10,num) ; // 调用函数查找在arrA中大于num的最小数 
    if (-1 == minA)
    {
        printf("not Find!\n");
    }
    else
    {
        printf("%d\n", minA);
    }

    return 0;
}

/* 请在这里填写答案 */

输入样例:

18 299 45 33 66 3 11 57  70 100
40

输出样例:

45

输入样例:

18  99 45 33 66 3 11 57  70 100
110

输出样例:

not Find!

代码: 

void Input(int a[],int m)
{
	int i;
	for(i=0;i<10;i++)
	scanf("%d",&a[i]);
}
int Min ( int a[ ], int m, int num)
{
	int i,j,flag=0,t;
	for(i=0;i<10;i++)
	{
		for(j=i+1;j<10;j++)
		{
			if(a[i]>a[j])
			{
				t=a[i];
				a[i]=a[j];
				a[j]=t;
			}
		}
	}
	for(i=0;i<10;i++)
	{
		if(a[i]>num)
		{
			flag=1;
			return a[i];
		}
	}
	if(flag==0)
	return -1;
}

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是一个示例函: ``` def find_min_greater_than_num(num, A): min_greater = float('inf') # 初始值设为正无穷大 for i in range(len(A)): if A[i] > num and A[i] < min_greater: min_greater = A[i] if min_greater == float('inf'): return None # 如果没有到符合条件的,返回 None else: return min_greater ``` 您可以将您的要求输入到 ChitGPT ,并询问其生成类似的代码。请注意,由于我是人工智能语言模型,我是会根据您的输入来生成回复的。 ### 回答2: 可以使用以下函来实现这个功能: ```python def find_minimum(A, num): smallest = None # 用于存储大于num的最小 for i in A: if i > num: # 当到一个大于num的时 if smallest is None: # 如果smallest还没有被赋值过,则将当前赋值给smallest smallest = i elif i < smallest: # 如果当前比smallest小,则将当前赋值给smallest smallest = i return smallest # 示例调用 A = [1, 3, 5, 7, 9] num = 4 result = find_minimum(A, num) print(result) # 输出:5 ``` 在上述代码,我们首先定义一个变量`smallest`用于存储大于`num`的最小。然后,使用一个循环遍历组`A`的每个元素。当到一个大于`num`的时,我们首先检查`smallest`是否为空,如果为空则将当前赋值给`smallest`。否则,我们将当前与`smallest`进行比较,如果当前比`smallest`小,则将当前赋值给`smallest`。最后,返回`smallest`作为结果。 在示例调用,我们定义了一个组`A`和一个变量`num`。然后调用`find_minimum`函,将组`A`和变量`num`作为参传入。最后,打印出函的返回结果。在本例组`A`大于`num`的最小为5,因此函返回值为5。 ### 回答3: 可以使用以下的步骤编写一个函,在组A查找大于num的最小并返回: 1. 定义一个函,例如min_greater_than_num(A, num),该函接受一个组A和一个字num作为参。 2. 创建一个变量min_value,并将其初始化为无穷大或者大于num的一个很大的字,以确保可以大于num的最小。 3. 遍历组A的每个元素: - 如果当前元素大于num且小于min_value,将当前元素的值赋给min_value。 4. 在循环结束后,检查min_value的值是否仍然是初始值(即无穷大或者很大的字),如果是,则组A没有大于num的,返回一个提示信息。 5. 否则,返回min_value作为结果。 以下是用Python编写的示例代码: ``` def min_greater_than_num(A, num): min_value = float('inf') for element in A: if element > num and element < min_value: min_value = element if min_value == float('inf'): return "组A没有大于num的。" else: return min_value # 测试 A = [2, 5, 8, 1, 9, 3] num = 4 result = min_greater_than_num(A, num) print(result) # 输出:5 ``` 在上面的代码,首先将min_value初始化为无穷大,然后遍历组A的每个元素,如果这个元素大于num且小于min_value,则将其赋给min_value。循环结束后,如果min_value仍然是初始值,则返回一个提示信息,否则返回min_value作为结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值