1-判断数字所在区间

 1-0 找区间

输入两个闭区间,然后输入n个数字,依次输出每个数字所在的区间有几个。

例如:

1 5//区间[1,5]

3 6//区间[3,6]

3

1

4

7

输出:

1

2

0

 

1-1 不仅要输出每个数字所在的区间,还要输出它所在的区间是几号区间。刚才的输出应该变为:

1 1

2 1 2

0


代码1(自己写的):

#include 
#include 
using namespace std;

int main()
{
    int a,b,c,d;
    int n;
    printf("请输入第一个区间:");
    scanf("%d%d",&a,&b);
    printf("请输入第二个区间:");
    scanf("%d%d",&c,&d);
    printf("请输入需要判断数字的个数:");
    scanf("%d",&n);

    int x[n];
    for(int i=0;i=c)
        {
            //if((x[i]>=a&&x[i]b&&x[i]<=d))
                //printf("只存在于1个区间\n");
            if(x[i]>=a&&x[i]b&&x[i]<=d) printf("1 2\n");
                    else if((x[i]>=c)&&(x[i]<=b))
                        printf("2 1 2\n");
                        else
                        printf("0");
        }
        else
        {
            if(x[i]>=a&&x[i]<=b) printf("1 1\n");
                else if(x[i]>=c&&x[i]<=d) printf("2 1");
                    else
                    printf("不存在于任何区间");
        }
    }

    return 0;
}

代码2(西交wrong):

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;
const int maxn = 100000;
typedef pair P;
int main()
{
    int f1,t1,f2,t2,n,x,res,xx,yy;
    scanf("%d%d%d%d%d",&f1,&t1,&f2,&t2,&n);
    for(int i=1;i<=n;i++)
    {
        xx=yy=res=0;
        scanf("%d",&x);
        if(x>=f1&&x<=t1) {res++;xx=1;}
        if(x>=f2&&x<=t2) {res++;yy=1;}
        cout<

(感谢西交wrong学长提供以上题目练习)

你可能感兴趣的:(1-判断数字所在区间)