//传统方法
#include <stdio.h>
int main() {
int i,x,y,n;
while (scanf("%d", &n) != EOF) {
int min=1000,y1=1000;
for(i=0;i<n;i++){
scanf("%d%d",&x,&y);
if(min>x){
min=x;
y1=y;
}
if(min==x){
if (y1>y){
y1=y;
}
}
}
printf("%d %d\n",min,y1);
}
return 0;
} #include <stdio.h>
#include <stdlib.h>
typedef struct all{
int x;
int y;
}all;
int cmp(const void *a,const void *b){
all *c=(all *)a;
all *d=(all *)b;
if(c->x!=d->x) return c->x - d->x;
else return c->y - d->y;
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
all num[1000];
for(int i=0;i<n;i++){
scanf("%d %d\n",&num[i].x,&num[i].y);
}
qsort(num,n,sizeof(num[0]),cmp);
printf("%d %d\n",num[0].x,num[0].y);
}
return 0;
} 法二:边输入边比较#include <stdio.h>
#include <stdlib.h>
#define INT_MAX 0x7fffffff
int main(){
int n,a,b,mina,minb;
mina=minb=INT_MAX;
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++){
scanf("%d %d\n",&a,&b);
if(mina>a){
mina=a;
minb=b;
}else if(mina==a){
if(minb>b){
minb=b;
}
}
}
printf("%d %d\n",mina,minb);
}
return 0;
}
注意:没有搞懂二维数组怎么写!