一道C++上机题,为什么我的代码显示 wrong answer

题目描述:第一行输入一个数n,1<=n<=1000,下面输入n行数据,每一行有两个数,分别是xy。输出一组xy,该组数据是所有数据中x最小,且在x相等的情况下y最小的。输... 题目描述:
第一行输入一个数n,1 <= n <= 1000,下面输入n行数据,每一行有两个数,分别是x y。输出一组x y,该组数据是所有数据中x最小,且在x相等的情况下y最小的。
输入:
输入有多组数据。
每组输入n,然后输入n个整数对。
输出:
输出最小的整数对。
样例输入:
5
3 3
2 2
5 5
2 1
3 6
样例输出:
2 1
#include<iostream>
using namespace std;
int main(){
int n,min,tmp;
int str1[3000];
while(cin>>n){//整数对数
for(int i=0;i<2*n;i++){
cin>>str1[i]>>str1[i+1];
i++;
}
min=0x7fffffff;
for(int j=0;j<n*2;j++){
if(str1[j]<min){
min=str1[j];
tmp=j;
j++;
}
if(str1[j]>min){
j++;
}
else if(str1[j]==min)
{
if(str1[j+1]<str1[tmp+1])
tmp=j;
j++;

}
}
cout<<str1[tmp]<<" "<<str1[tmp+1]<<endl;
}
return 0;
}

dev c++上面正常的,但九度oj不行,显示wrong answer
展开
 我来答
物理公司的
2015-03-09 · TA获得超过5695个赞
知道大有可为答主
回答量:6105
采纳率:86%
帮助的人:1320万
展开全部
#include<stdio.h>
int main()
{
        int n=0,i=0,x,y;
        int xmin,ymin;
        while(scanf("%d",&n)!=EOF)
        {
                if((n<1)||(n>1000))
                {
                        return 0;
                }
                xmin=0;
                ymin=0;
                scanf("%d %d",&xmin,&ymin);
                for(i=0;i<n-1;i++)
                {
                        scanf("%d %d",&x,&y);
                        if((x<xmin)||((x==xmin)&&(y<ymin)))
                        {
                                xmin=x;
                                ymin=y;
                        }
                }
                printf("%d %d\n",xmin,ymin);
        }
        return 0;
}
/**************************************************************
    Problem: 1170
    User: ....@qq.com
    Language: C++
    Result: Accepted
    Time:10 ms
    Memory:1020 kb
****************************************************************/

写一个比改一个快

追问
我也知道怎么重新写一个,但不知道我这个为什么AC不了回复
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式