查找整数

本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。

输入格式:

输入在第一行中给出两个正整数N(≤20)和X,第二行给出N个整数。数字均不超过长整型,其间以空格分隔。

输出格式:

在一行中输出X的位置,或者“Not Found”。

输入样例1:

5 7
3 5 7 1 9

输出样例1:

2

输入样例2:

5 7
3 5 8 1 9

输出样例2:

Not Found

 #include<stdio.h>
int main( )
{
    int n,x;
    int a[20];
    int d;
    scanf("%d %d",&n,&x);
    int i;
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++)
    {
        if(a[i]==x)
        {
            d=i;
            break;
        }
        else{
            d=-1;
        }
        
    }
    if(d==-1)
        {
            printf("Not Found");
        }
    else
    {
        printf("%d",i);
    }
    return 0;
    
}

要使用C语言实现这个功能,你可以按照以下步骤进行: 1. 首先,定义一个数组来存储输入的n个整数。 2. 通过输入循环来填充数组,并确保输入整数在1到100之间。 3. 实现查找第二大值的逻辑。可以通过一次遍历数组,记录下最大值和第二大值。初始时可以假设数组的第一个元素就是最大值,第二个元素就是第二大值。然后从第三个元素开始遍历数组,如果当前元素大于已知的最大值,则更新第二大值为最大值,并将当前元素设为新的最大值。如果当前元素大于第二大值且小于最大值,则更新第二大值。 4. 最后,输出记录的第二大值。 下面是一个简单的C语言代码示例: ```c #include <stdio.h> int main() { int n, i; int num, max, second_max; // 输入数组元素个数n printf("请输入数组元素个数n(1<n<=100):"); scanf("%d", &n); // 输入n个数组元素 int array[n]; printf("请输入%d个整数:\n", n); for (i = 0; i < n; i++) { scanf("%d", &array[i]); // 确保输入的值在1到100之间 if (array[i] < 1 || array[i] > 100) { printf("输入的数字不在1到100之间,请重新输入。\n"); i--; // 重新输入当前这个数 } } // 初始化最大值和第二大值 if (array[0] > array[1]) { max = array[0]; second_max = array[1]; } else { max = array[1]; second_max = array[0]; } // 遍历数组,找到最大值和第二大值 for (i = 2; i < n; i++) { if (array[i] > max) { second_max = max; // 更新第二大值 max = array[i]; // 更新最大值 } else if (array[i] > second_max && array[i] != max) { second_max = array[i]; // 更新第二大值 } } // 输出第二大值 printf("数组中的次大值是:%d\n", second_max); return 0; } ``` 这段代码实现了从键盘输入数组大小和元素,查找并输出数组元素中的第二大值的功能。不过,在实际应用中,通常会做更多的输入验证和错误处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值