hdu 2020绝对值排序

来源:互联网 发布:小黄车密码锁破解软件 编辑:程序博客网 时间:2024/05/17 03:19

本题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2020

本题主要使用一种排序方法,我借鉴了冒泡排序法的思想

刚开始我使用了动态数组,结果提交总是不过,但格式与功能自认为均达到了题目的要求,代码如下:

 

 #include<stdio.h>#include<malloc.h>#include<math.h>int main(){ int n,i,j,t; while(scanf("%d",&n)!=EOF&&n!=0) {  int*a=(int*)malloc(sizeof(int)*n);  for(i=1;i<=n;i++)  {   scanf("%d",&a[i]);  }  for(j=1;j<=n-1;j++)   for(i=1;i<=n-j;i++)   {    if(abs(a[i])<abs(a[i+1]))    {     t=a[i];     a[i]=a[i+1];     a[i+1]=t;     }   }  for(i=1;i<n;i++)  {   printf("%d ",a[i]);  }  printf("%d\n",a[n]);  free(a); } return 0;}

后来不使用动态数组,再提交直接过了!!

#include<stdio.h>#include<math.h>int main(){ int n,i,j,t; int a[101]; while(scanf("%d",&n)!=EOF&&n!=0) { int*a=(int*)malloc(sizeof(int)*n);  for(i=1;i<=n;i++)  {   scanf("%d",&a[i]);  }  for(j=1;j<=n-1;j++)   for(i=1;i<=n-j;i++)   {    if(abs(a[i])<abs(a[i+1]))    {     t=a[i];     a[i]=a[i+1];     a[i+1]=t;     }   }  for(i=1;i<n;i++)  {   printf("%d ",a[i]);  }  printf("%d\n",a[n]);free(a); } return 0;}

0 0