查找整数

蓝桥杯学习记录
在这里插入图片描述
分析:
有输入,且输入为三行,要控制输入的格式.
输出是一个整数表示它第一次出现的位置(要注意它的位置是从一开始的 ,且只输出它第一次出现的位置,后面的不能输出)
数据规模要求,在代码中要体现

import java.util.Scanner;

/*给出一个包含n个数的数列,问某个数第一次出现的位置

//输入
// 第一行包含一个整数n
// 第二行包含n个非负整数,是给定的数列,每个数都不大于1000
// 第三行包含一个数,是要寻找的整数

//输出他第一次出现的位置(数列位置从1开始计数)


//样例输入:
 * 6
 * 1 9 4 8 3 9
 * 9
 * 样例输出:
 * 2
 
 */

public class DiYiCiChuXian {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根

		Scanner cin = new Scanner(System.in);
		int n = cin.nextInt();//第一行
		int []arr = new int[n];//第二行
		for(int i=0;i<n;i++) {
			arr[i]= cin.nextInt();
		}
		int m =cin.nextInt();//第三行
		cin.close();
		if(1<=n&&n<=1000) 
		{
			int j;
			for( j=0;j<n;j++) {
				if(arr[j]==m) {
					System.out.println(j+1);
					break;//用break退出循环,这样就不会输出其余的数					
				}	
			}if(j==n) {
				System.out.println(-1);
			}
			
		}else {
			System.out.println(-1);
		}
	}

}

思路
用简单循环来判断,要找的数在数列中是否出现,只要出现了,就用break进来退出循环,假如数列中没有要找的数(技师指当找到最后一个位置j==n的时候都没有找到,这时候是需要输出-1 的,千万不能忽视.)

反思
一般在数列的第一个位置或者最后一个位置都是很特殊的,用来控制输出格式,当然在中间的位置按照不同的题目要求也是可以控制的,所以在这些点要多多注意

在C语言中实现查找整数的功能,有多种方法,下面结合参考内容介绍两种常见的方式。 ### 线性查找方法 线性查找是一种简单直接的查找方法,它会依次遍历数组中的每个元素,直到找到目标整数或遍历完整个数组。 示例代码如下: ```c #include <stdio.h> void precious() { int n, x, i, flag = 0, a[20]; scanf("%d%d", &n, &x); for (i = 0; i < n; i++) { scanf("%d", &a[i]); if (x == a[i]) { flag = 1; printf("%d\n", i); } } if (flag == 0) printf("Not Found\n"); } int main() { precious(); return 0; } ``` 该代码中,`precious` 函数用于实现查找整数的功能。首先读取数组的长度 `n` 和要查找整数 `x`,然后依次读取数组元素,当找到与 `x` 相等的元素时,输出其位置并将标志 `flag` 置为 1。若遍历完数组都未找到,则输出 "Not Found" [^1]。 另一个类似的线性查找示例代码如下: ```c #include <stdio.h> int main() { int n, x, i, index = -1; int a[100]; scanf("%d %d", &n, &x); for (i = 0; i < n; i++) { scanf("%d", &a[i]); } for (i = 0; i < n; i++) { if (a[i] == x) { index = i; break; } else index = -1; } if (index == -1) printf("Not Found"); else printf("%d", index); return 0; } ``` 此代码先读取数组长度和要查找整数,再读取数组元素,之后遍历数组查找目标整数。若找到,记录其位置并跳出循环;若未找到,`index` 保持为 -1。最后根据 `index` 的值输出结果 [^4]。 ### 输入输出要求 输入方面,通常第一行包含一个整数 `n` 表示数组长度,第二行包含 `n` 个非负整数作为给定的数列(数列中的每个数都不大于 10000),第三行包含一个整数 `a` 为待查找的数。输出时,如果 `a` 在数列中出现了,输出它第一次出现的位置(位置从 1 开始编号),否则输出 -1 [^2][^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

炒冷饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值