首页 > 试题广场 >

找x

[编程题]找x
  • 热度指数:21842 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。

输入描述:
测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。


输出描述:
对于每组输入,请输出结果。
示例1

输入

2
1 3
0

输出

-1
很简单,就是数组遍历,找到则打印i,若无则输出-1
#include <stdio.h>
#include <stdlib.h>

int main(){
    int n,x,num[200];
    while(scanf("%d",&n)!=EOF){
        for(int i=0;i<n;i++){
            scanf("%d ",&num[i]);
        }
        scanf("%d",&x);
        int i;
        for(i=0;i<n;i++){
            if(num[i]==x){
                printf("%d\n",i);
                break;
            }
        }
        if(i==n){
            printf("%d\n",-1);
        }
    }
    return 0;
}
C++同样的方法:
#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;
int main(){
    int n,x,num[200];
    while(scanf("%d",&n)!=EOF){
        for(int i=0;i<n;i++){
            cin>>num[i];
        }
        cin>>x;
        int j;
        for(j=0;j<n;j++){
            if(num[j]==x){
                cout<<j<<endl;
                break;
            }
        }
        if(j==n){
            cout<<-1<<endl;
        }
    }
    return 0;
}



发表于 2022-02-23 10:46:26 回复(0)
#include<stdio.h>
#include<stdlib.h>
int main(){
	int n;
	while(scanf("%d",&n)!=EOF){
		int *num=(int *)malloc(sizeof(int)*n);
		for(int i=0;i<n;i++){
			int temp;
			scanf("%d",&temp);
			num[i]=temp;
		}
		int sp;
		scanf("%d",&sp);
		for(int i=0;i<n;i++){
			if(num[i]==sp){
				printf("%d",i);
                break;
            }
			else if(num[i]!=sp && i==n-1){
				printf("%d",-1);
				break;
			}
		}
		printf("\n");
	}
}

发表于 2022-01-14 11:47:36 回复(0)