Day29-"练习-4"

今天也是练习CPE的题目

世界闻名的黑社会老大A先生要搬到纽约来了。在那里他有一个大家族,并且他们都住在伯朗大道上。因为时常要拜访所有的亲戚,他想要找一间离他们最近的房子,也就是说他希望从他的家到所有的亲戚家的路径为最短的。

输入值的第一列的数字为有多少组测试资料,且此数字为一整数数字。
每笔测试资料的第一个数字代表着有多少亲戚,且数字范围为0到500,接续的数字为亲戚家的门牌号码,但要注意的是,门牌号码可能会相同,且范围为0到30000。

输出值为从他家到亲戚家的最短距离和,但要特别注意的是,有些值相减後会出现负数,但距离没有负值,因此要记得将数值取绝对值。
.
.
.
.
.

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

void main()
{
	int x,a,b[30010],i,j,y,sum,avg,distance,total;
	scanf("%d",&x);//测试组数 
	while(x--)
	{
		scanf("%d",&a);//几个邻居 
		for(i=0;i<a;i++)
		{
			scanf("%d",&b[i]);//邻居家位置 
		}
		for(i=0;i<a;i++)
		{
			for(j=i+1;j<a;j++)
			{
				if(b[i]>b[j])
				{
					y=b[i];
					b[i]=b[j];
					b[j]=y; 
				}
			}
		}
		sum=0;
		for(i=0;i<a;i++)
		{
			sum=sum+b[i];
		}
		total=0;
		for(i=0;i<a;i++)
		{
			avg=sum/a;
			distance=abs(avg-b[i]);
			total=total+distance;	
		}
		printf("距离和=%d\n",total);
	}
}

我们先将值进行小到大的排序

我们将所有值排好後,将所有值相加後取平均,可得知老大家的位置,再利用此位置与所有亲戚家的距离相减取绝对值後,再将所有值相加即为题目规定之答案。

/images/emoticon/emoticon29.gif

Day29就到这啦BYE~


<<:  喜欢的事情要成为专业,才能做喜欢的事情?

>>:  视觉化当日趋势图(5)-折线图/趋势图前置

Day14 用 100 寸超大萤幕写 Code 的感觉 - 用 metatable 改变预设行为

前两天我已经学会用 CC: Tweaked 电脑读取磁片和播放音乐 今天我要来写 Code 啦 !!...

DAY27-如何与人协同工作与好好沟通-实习生篇

所有的问题都不简单 在你所有认为很基本的问题,对实习生来说都不简单。想想我之所以会认为理所当然很简单...

【Day3】看YT学写程序

source code 低家 :https://github.com/AfrazCodes/ToD...

[DAY9]观察heroku logs

既然我们上传成功了,那麽接着就是要观察我们的结果啦!! 第一步:打开CMD进入资料夹登入heroku...

Day 30 後记-TUTK跟一些P2P介绍

Tutkt P2P使用方法介绍: 连接原理为: (1) -> Device向P2P Serve...