1467: 平面点排序(一)(结构体专题)
1467: 平面点排序(一)(结构体专题)
时间限制: 1 Sec 内存限制: 128 MB
提交: 1209 解决: 816
[提交][状态][讨论版][命题人:外部导入]
题目描述
平面上有n个点,坐标均为整数。请按与坐标原点(0,0)距离的远近将所有点排序输出。可以自己写排序函数,也可以用qsort库函数排序。
输入
输入daima有两行,第一行是整数n(1<=n<=10),接下来有n行,每行一对整数(每对整数对应一个点)。
输出
输出排序后的所有点,格式为(u,v),每个点后有一个空格。测试数据保证每个点到原点的距离都不同。
样例输入
4 1 3 2 5 1 4 4 2
样例输出
(1,3) (1,4) (4,2) (2,5)
代码一:
#include<stdio.h>
#include<math.h>
struct student
{
int x;
int y;
};
int main()
{
int n,i,j,t;
scanf("%d",&n);
struct student a[10];
for(i=0; i<n; i++)
{
scanf("%d%d",&a[i].x,&a[i].y);
}
for(j=0;j<(n-1);j++)
{
for(i=0; i<n-j; i++)
{
if((a[i].x)*(a[i].x)+(a[i].y)*(a[i].y)>(a[i+1].x)*(a[i+1].x)+(a[i+1].y)*(a[i+1].y))
{
t=a[i].x;
a[i].x=a[i+1].x;
a[i+1].x=t;
t=a[i].y;
a[i].y=a[i+1].y;
a[i+1].y=t;
}
}
}
for(i=0; i<n; i++)
{
printf("(%d,%d)",a[i].x,a[i].y);
printf(" ");
}
return 0;
}
运行结果:
代码二:
#include<stdio.h>
#include<math.h>
struct student
{
int x;
int y;
};
int main()
{
int n,i,j,t;
scanf("%d",&n);
struct student a[n];只把10换为n
for(i=0; i<n; i++)
{
scanf("%d%d",&a[i].x,&a[i].y);
}
for(j=0;j<(n-1);j++)
{
for(i=0; i<n-j; i++)
{
if((a[i].x)*(a[i].x)+(a[i].y)*(a[i].y)>(a[i+1].x)*(a[i+1].x)+(a[i+1].y)*(a[i+1].y))
{
t=a[i].x;
a[i].x=a[i+1].x;
a[i+1].x=t;
t=a[i].y;
a[i].y=a[i+1].y;
a[i+1].y=t;
}
}
}
for(i=0; i<n; i++)
{
printf("(%d,%d)",a[i].x,a[i].y);
printf(" ");
}
return 0;
}
运行结果:
代码三:
#include<stdio.h>
#include<math.h>
struct student
{
int x;
int y;
};
int main()
{
int n,i,j,t;
scanf("%d",&n);
struct student a[1000];把10换为1000
for(i=0; i<n; i++)
{
scanf("%d%d",&a[i].x,&a[i].y);
}
for(j=0;j<(n-1);j++)
{
for(i=0; i<n-j; i++)
{
if((a[i].x)*(a[i].x)+(a[i].y)*(a[i].y)>(a[i+1].x)*(a[i+1].x)+(a[i+1].y)*(a[i+1].y))
{
t=a[i].x;
a[i].x=a[i+1].x;
a[i+1].x=t;
t=a[i].y;
a[i].y=a[i+1].y;
a[i+1].y=t;
}
}
}
for(i=0; i<n; i++)
{
printf("(%d,%d)",a[i].x,a[i].y);
printf(" ");
}
return 0;
}
运行结果:
问题出在了那里???
问题出在了冒泡
正确代码:
#include<stdio.h>
#include<math.h>
struct student
{
int x;
int y;
};
int main()
{
int n,i,j,t;
scanf("%d",&n);
struct student a[n];
for(i=0; i<n; i++)
{
scanf("%d%d",&a[i].x,&a[i].y);
}
for(j=1;j<n;j++)///外循环和内循环,外层n-1,内层n-i次,但是外层要从1开始
{
for(i=0; i<n-j; i++)
{
if((a[i].x)*(a[i].x)+(a[i].y)*(a[i].y)>(a[i+1].x)*(a[i+1].x)+(a[i+1].y)*(a[i+1].y))
{
t=a[i].x;
a[i].x=a[i+1].x;
a[i+1].x=t;
t=a[i].y;
a[i].y=a[i+1].y;
a[i+1].y=t;
}
}
}
for(i=0; i<n; i++)
{
printf("(%d,%d)",a[i].x,a[i].y);
printf(" ");
}
return 0;
}
1467: 平面点排序(一)(结构体专题)相关推荐
- ZZULIOJ1194: 总成绩排序(结构体专题)
1194: 总成绩排序(结构体专题) 题目描述: 有一学生成绩表,包括学号.姓名.3门课程成绩.请按如下规则排序:按总成绩降序排序,若总成绩相同,则按姓名升序排序. 输入: 首先输入一个整数n(1&l ...
- 编写程序,实现按出生日期排序(结构体专题)。
输入n个人的信息(信息包含姓名.出生日期.其中出生日期又包含年.月.日三部分信息.),按生日的月份和日期升序输出所有人信息.输入要求:首先输入一个整数n(1<=n<=10),表示好友人数, ...
- ZZULIOJ 1180-1198结构体专题 参考代码
一共19道题 虽然是java写的,但是还是用的类似于C的结构体 下面代码供参考 每题前面标的有题号 *1180 成绩统计(结构体专题) 1181 谁的年龄最小(结构体专题) 1182 查询记录(结构体 ...
- 1183: 平面点排序(一)(结构体专题)C语言
1183: 平面点排序(一)(结构体专题) 时间限制: 1 Sec 内存限制: 128 MB 提交: 6339 解决: 4077 [状态] [讨论版] [提交] [命题人:admin] 题目描述 平面 ...
- ZZULI-1184 平面点排序(二)(结构体专题)
1184: 平面点排序(二)(结构体专题) Time Limit: 1 Sec Memory Limit: 128 MB Submit: 1291 Solved: 630 Submit Sta ...
- ZZULIOJ: 1187: 棒棒糖(结构体专题)
1187: 棒棒糖(结构体专题) 时间限制: 1 Sec 内存限制: 128 MB 提交: 1006 解决: 790 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 新年快到了,计算机 ...
- 考试排名(结构体专题)
考试排名(结构体专题) 题目描述 今天浙大研究生复试的上机考试跟传统笔试的打分规则相似,总共有n道题,每道题有对应分值,最后计算总成绩.现给定录取分数线,请你写程序找出最后通过分数线的考生,并将他们的 ...
- 1197: 考试排名(一)(结构体专题)
1197: 考试排名(一)(结构体专题) 时间限制: 1 Sec 内存限制: 128 MB 提交: 59 解决: 70 [提交] [状态] [讨论版] [命题人:eilene] 题目描述 今天浙大 ...
- 考试排名(一)(结构体专题)
考试排名(一)(结构体专题) 题目描述 今天浙大研究生复试的上机考试跟传统笔试的打分规则相似,总共有n道题,每道题有对应分值,最后计算总成绩.现给定录取分数线,请你写程序找出最后通过分数线的考生,并将 ...
- ZZULIOJ1198: 考试排名(二)(结构体专题)
1198: 考试排名(二)(结构体专题) 题目描述: ACM 国际大学生程序设计竞赛,英文全称:ACM International Collegiate Programming Contest(ACM ...
最新文章
- ECCV 2020 Oral | 可逆图像缩放:完美恢复降采样后的高清图片
- java.util.NoSuchElementException错误原因及解决方案
- linux磁盘分区格式化与挂载
- 树莓派应用实例4:环境温湿度测量(改进)
- Python应用实战-从pandas的角度来对比MySQL,教你如何更快更好的学习sql
- 数学建模——智能优化之模拟退火模型详解Python代码
- 正确获取硬盘序列号源码
- Magento Block设计分析(深入分析)
- java客户端作为kafka生产者测试
- 【Python爬虫】存储格式化数据
- 动态设置样式 calc计算
- 2017CCPC哈尔滨 H:A Simple Stone Game
- adb调试工具下载使用
- 【Python】基于Python的百度迁徙1——迁入、迁出数据(附代码)
- Java学生管理系统(数组版)
- uml点餐系统活动图_UML 活动图
- st计算机编程语言,SoMAChineST编程语言介绍.pdf
- 【C++ Builder 11】选择文件夹的三种方式
- Android 音频源码分析——audioserver启动
- 2022最新软件测试面试题,看完还怕拿不到offer?