首页 > 其他 > 详细

2020

时间:2016-03-30 14:49:45      阅读:257      评论:0      收藏:0      [点我收藏+]

绝对值从大到小排序

冒泡排序

 

#include <stdio.h>
#include <math.h>

int main()
{
	int n;
	
	while (scanf_s("%d", &n) && n)
	{
		int i, j, t, s[101] = { 0 };
		for (i = 0; i < n; i++)
			scanf_s("%d", &s[i]);
		for (i = 0; i < n; i++)
		{
			//冒泡排序
			for (j = 0; j < n - 1 - i; j++)
			{
				if (abs(s[j]) < abs(s[j + 1]))
					t = s[j + 1]; s[j + 1] = s[j]; s[j] = t;
			}
		}
		for (i = 0; i < n; i++)
			printf("%d%c",s[i],(i < n -1 ? ‘ ‘:‘\n‘));

	}
	return 0;
}

  

参考答案

#include <math.h>
#include <stdio.h>
#include <stdlib.h>

int cmp(const int *a, const int *b)
{
    return abs(*b) - abs(*a);
}

int main(void)
{
    int n, i, x[101];
    
    while (scanf("%d", &n), n)
    {
        for (i = 0 ; i < n ; i++)
            scanf("%d", x + i);
        qsort(x, n, sizeof(int), cmp);
        for (i = 0 ; i < n ; i++)
            printf("%d%c", x[i], (i != n - 1 ? ‘ ‘ : ‘\n‘));
    }

    return 0;
}

  

 

2020

原文:http://www.cnblogs.com/ailx10/p/5336949.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!