1 条题解
-
0
C :
#include<stdio.h> #include<math.h> struct point{ int x; //横坐标 int y; //纵坐标 double dis; //离原点距离 }a[100]; void shuru(int n); struct point getPoint(struct point *p, int n); int main() { struct point *p, ab; int n, i; p = a; scanf("%d", &n); shuru(n); ab = getPoint(p, n); printf("(%d,%d)", ab.x, ab.y); } void shuru(int n) { int x, y; int i = 0; while((scanf("%d%d", &a[i].x, &a[i].y) == 2) && (++i < n) ); } struct point getPoint(struct point *p, int n) { int i, j, t; double h; struct point xy; for(i=0; i<n; i++) { (p+i)->dis = sqrt((((p+i)->x) * ((p+i)->x)) + (((p+i)->y) * ((p+i)->y))); } for(i=0; i<n-1; i++) { for(j=0; j<n-i-1; j++) { if((p+j)->dis > (p+j+1)->dis) { h = (p+j)->dis; (p+j)->dis = (p+j+1)->dis; (p+j+1)->dis = h; t = (p+j)->x; (p+j)->x = (p+j+1)->x; (p+j+1)->x = t; t = (p+j)->y; (p+j)->y = (p+j+1)->y; (p+j+1)->y = t; } } } if(p->dis < (p+1)->dis) { xy.x = p->x; xy.y = p->y; xy.dis = p->dis; } else if(p->dis == (p+1)->dis) { if(p->x < (p+1)->x) { xy.x = p->x; xy.y = p->y; xy.dis = p->dis; } else if(p->x > (p+1)->x) { xy.x = (p+1)->x; xy.y = (p+1)->y; xy.dis = (p+1)->dis; } else if(p->x == (p+1)->x) { if(p->y < (p+1)->y) { xy.x = p->x; xy.y = p->y; xy.dis = p->dis; } else { xy.x = (p+1)->x; xy.y = (p+1)->y; xy.dis = (p+1)->dis; } } } return xy; }
C++ :
#include<stdio.h> #include<math.h> struct point{ int x; //横坐标 int y; //纵坐标 double dis; //离原点距离 }a[100]; void shuru(int n); struct point getPoint(struct point *p, int n); int main() { struct point *p, ab; int n, i; p = a; scanf("%d", &n); shuru(n); ab = getPoint(p, n); printf("(%d,%d)", ab.x, ab.y); } void shuru(int n) { int x, y; int i = 0; while((scanf("%d%d", &a[i].x, &a[i].y) == 2) && (++i < n) ); } struct point getPoint(struct point *p, int n) { int i, j, t; double h; struct point xy; for(i=0; i<n; i++) { (p+i)->dis = sqrt((((p+i)->x) * ((p+i)->x)) + (((p+i)->y) * ((p+i)->y))); } for(i=0; i<n-1; i++) { for(j=0; j<n-i-1; j++) { if((p+j)->dis > (p+j+1)->dis) { h = (p+j)->dis; (p+j)->dis = (p+j+1)->dis; (p+j+1)->dis = h; t = (p+j)->x; (p+j)->x = (p+j+1)->x; (p+j+1)->x = t; t = (p+j)->y; (p+j)->y = (p+j+1)->y; (p+j+1)->y = t; } } } if(p->dis < (p+1)->dis) { xy.x = p->x; xy.y = p->y; xy.dis = p->dis; } else if(p->dis == (p+1)->dis) { if(p->x < (p+1)->x) { xy.x = p->x; xy.y = p->y; xy.dis = p->dis; } else if(p->x > (p+1)->x) { xy.x = (p+1)->x; xy.y = (p+1)->y; xy.dis = (p+1)->dis; } else if(p->x == (p+1)->x) { if(p->y < (p+1)->y) { xy.x = p->x; xy.y = p->y; xy.dis = p->dis; } else { xy.x = (p+1)->x; xy.y = (p+1)->y; xy.dis = (p+1)->dis; } } } return xy; }
- 1
信息
- ID
- 1725
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者