上海艺佳建设发展有限公司网站,wordpress 文章空格,做图软件下载官方网站,网站商城的意义#includestdio.h
#includestdlib.h
#includemath.h//贪心算法之货仓选址问题/*** void* p是万能指针#xff0c;可以和其它任意类型的指针进行转换#xff0c;前提是确保转换是合法的*/
//写好用于qsort的比较函数#xff0c;这里写的函数一般用于…#includestdio.h
#includestdlib.h
#includemath.h//贪心算法之货仓选址问题/*** void* p是万能指针可以和其它任意类型的指针进行转换前提是确保转换是合法的*/
//写好用于qsort的比较函数这里写的函数一般用于升序排序
int compare(const void* a, const void* b)
{//(int*)为先将指针a强制类型转换为整型指针前面的*为取值操作return(*(int*)a - *(int*)b);
}//找出数组排好序后处于中间位置的数
int find(int* shops, int arrNum)//shops为数组名arrNum为数组的长度
{qsort(shops,arrNum,sizeof(int),compare); //因为是整型数组所以第三部分写的是sizeof(int)int pos shops[arrNum / 2];return pos;
}//求总的距离
int sum(int pos,int* shops, int arrNum)
{int total 0;for (int i 0; i arrNum; i){total abs(pos - shops[i]);}return total;
}int main(int argc, char* argv[])
{int n 0;printf(请输入商店数量);scanf_s(%d,n);int* shops (int*)malloc(sizeof(int) * n);printf(输入商店坐标\n);for (int i 0; i n; i){printf(第%d间商店:,i1);scanf_s(%d,shopsi);}int pos find(shops, n);int total sum(pos, shops, n);printf(货仓坐标%d,最短距离%d\n,pos,total);return 0;
}