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: 平面点排序(一)(结构体专题)相关推荐

  1. ZZULIOJ1194: 总成绩排序(结构体专题)

    1194: 总成绩排序(结构体专题) 题目描述: 有一学生成绩表,包括学号.姓名.3门课程成绩.请按如下规则排序:按总成绩降序排序,若总成绩相同,则按姓名升序排序. 输入: 首先输入一个整数n(1&l ...

  2. 编写程序,实现按出生日期排序(结构体专题)。

    输入n个人的信息(信息包含姓名.出生日期.其中出生日期又包含年.月.日三部分信息.),按生日的月份和日期升序输出所有人信息.输入要求:首先输入一个整数n(1<=n<=10),表示好友人数, ...

  3. ZZULIOJ 1180-1198结构体专题 参考代码

    一共19道题 虽然是java写的,但是还是用的类似于C的结构体 下面代码供参考 每题前面标的有题号 *1180 成绩统计(结构体专题) 1181 谁的年龄最小(结构体专题) 1182 查询记录(结构体 ...

  4. 1183: 平面点排序(一)(结构体专题)C语言

    1183: 平面点排序(一)(结构体专题) 时间限制: 1 Sec 内存限制: 128 MB 提交: 6339 解决: 4077 [状态] [讨论版] [提交] [命题人:admin] 题目描述 平面 ...

  5. ZZULI-1184 平面点排序(二)(结构体专题)

    1184: 平面点排序(二)(结构体专题) Time Limit: 1 Sec   Memory Limit: 128 MB Submit: 1291   Solved: 630 Submit Sta ...

  6. ZZULIOJ: 1187: 棒棒糖(结构体专题)

    1187: 棒棒糖(结构体专题) 时间限制: 1 Sec 内存限制: 128 MB 提交: 1006 解决: 790 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 新年快到了,计算机 ...

  7. 考试排名(结构体专题)

    考试排名(结构体专题) 题目描述 今天浙大研究生复试的上机考试跟传统笔试的打分规则相似,总共有n道题,每道题有对应分值,最后计算总成绩.现给定录取分数线,请你写程序找出最后通过分数线的考生,并将他们的 ...

  8. 1197: 考试排名(一)(结构体专题)

    1197: 考试排名(一)(结构体专题) 时间限制: 1 Sec  内存限制: 128 MB 提交: 59  解决: 70 [提交] [状态] [讨论版] [命题人:eilene] 题目描述 今天浙大 ...

  9. 考试排名(一)(结构体专题)

    考试排名(一)(结构体专题) 题目描述 今天浙大研究生复试的上机考试跟传统笔试的打分规则相似,总共有n道题,每道题有对应分值,最后计算总成绩.现给定录取分数线,请你写程序找出最后通过分数线的考生,并将 ...

  10. ZZULIOJ1198: 考试排名(二)(结构体专题)

    1198: 考试排名(二)(结构体专题) 题目描述: ACM 国际大学生程序设计竞赛,英文全称:ACM International Collegiate Programming Contest(ACM ...

最新文章

  1. ECCV 2020 Oral | 可逆图像缩放:完美恢复降采样后的高清图片
  2. java.util.NoSuchElementException错误原因及解决方案
  3. linux磁盘分区格式化与挂载
  4. 树莓派应用实例4:环境温湿度测量(改进)
  5. Python应用实战-从pandas的角度来对比MySQL,教你如何更快更好的学习sql
  6. 数学建模——智能优化之模拟退火模型详解Python代码
  7. 正确获取硬盘序列号源码
  8. Magento Block设计分析(深入分析)
  9. java客户端作为kafka生产者测试
  10. 【Python爬虫】存储格式化数据
  11. 动态设置样式 calc计算
  12. 2017CCPC哈尔滨 H:A Simple Stone Game
  13. adb调试工具下载使用
  14. 【Python】基于Python的百度迁徙1——迁入、迁出数据(附代码)
  15. Java学生管理系统(数组版)
  16. uml点餐系统活动图_UML 活动图
  17. st计算机编程语言,SoMAChineST编程语言介绍.pdf
  18. 【C++ Builder 11】选择文件夹的三种方式
  19. Android 音频源码分析——audioserver启动
  20. 2022最新软件测试面试题,看完还怕拿不到offer?

热门文章

  1. DGL官方教程--图注意力网络(GAT)
  2. kui 组件化库思路(来啦,老弟,持续更新哦,部署gitpages,添加issue)
  3. 租用服务器怎么修改密码,把租的号改密码-租用的服务器怎么改密码?
  4. 微信小程序 云开发 图片内容安全 珊瑚图片内容安全 api
  5. vue3 动态获取屏幕尺寸
  6. 做空恐慌指数Python回测
  7. 新华社痛批铁道部封抢票软件:自己傻就怨别人太聪明
  8. 卧龙图说酒:喝酒的人生,是有意义的人生!
  9. DBeaver 连接 人大金仓以及其他国产数据库
  10. Python——基础语法