扫描法作业
#include<stdio.h>
#include<stdlib.h>
#include<math.h>#define MaxNum 15 //定義一共有十五個小區;//對小區進行結構化定義;struct vex
{int X;int Y;double Need; //定義每個小區的需求;double tan; //儲存小區的掃描角;int number; //定義小區的編號;
};int main(void)
{int i,j,k=1;//float Needness[15];//int x[15],y[15];double car=5;double S;struct vex village[MaxNum] ,temp;//隨機初始化小區位置點;double Needness[15]={3561.77,1917.88,3287.78,2191.86,1643.90,3287.79,1095.93,2739.83,1369.92,821.95,1369.92,958.94,958.94,1095.93,1095.93};int x[15]={-68,-11,-66,68,90,327,-68,-14,-245,-50,-292,283,77,22,113};int y[15]={-113,-120,-36,-16,13,16,43,61,92,106,165,178,210,268,279};for(i=0;i<MaxNum;i++){village[i].Need=Needness[i]/365;village[i].number=i+1;village[i].X=x[i];village[i].Y=y[i];S=(double)asin((village[i].Y/sqrt(village[i].Y*village[i].Y+village[i].X*village[i].X)));if(village[i].X>0&&village[i].Y>0){village[i].tan=S;}if(village[i].X<0&&village[i].Y<0){village[i].tan=S+3.1415;}if(village[i].X<0&&village[i].Y>0){village[i].tan=S+3.1415;}if(village[i].X>0&&village[i].Y<0){village[i].tan=S+3.1415*2;}}//按照小區的角度進行排序,排序方法:冒泡。for(i=0;i<MaxNum;i++){for(j=i+1;j<MaxNum;j++){if(village[i].tan>village[j].tan){temp.tan=village[i].tan;temp.X=village[i].X;temp.Y=village[i].Y;temp.number=village[i].number;temp.Need=village[i].Need;village[i].tan=village[j].tan;village[i].number=village[j].number;village[i].Need=village[j].Need;village[i].X=village[j].X;village[i].Y=village[j].Y;village[j].tan=temp.tan;village[j].number=temp.number;village[j].Need=temp.Need;village[j].X=temp.X;village[j].Y=temp.Y;}}}//按照掃描角度的大小順序,從小到大對更小區進行排序for(i=0;i<MaxNum;i++) {printf("(X,Y):(%d,%d) angle:%f Need:%f Num:%d\n",village[i].X,village[i].Y,village[i].tan,village[i].Need,village [i].number);}printf("\n");//按照旋轉角度從小到大輸出小區的位置,位置相近的小區乘坐同一輛車;printf("第%d輛車:\t",k);for(i=0;i<MaxNum;i++){if(car>village[i].Need){car=car-village[i].Need;printf("%d\t",village[i].number);}else{if(car!=5){village[i].Need=village[i].Need-car;printf("%d\t",village[i].number);car=5;}while(village[i].Need>5){printf("\n");printf("第%d輛車:\t",k);printf("%d\t",village[i].number);k++;village[i].Need=village[i].Need-5;}printf("\n");printf("第%d輛車:\t",k);printf("%d\t",village[i].number);k++;car=car-village[i].Need;}}printf("\n");return 0;}
?
轉載于:https://www.cnblogs.com/code-wangjun/p/4947719.html
總結
- 上一篇: backbone.js全栈开发
- 下一篇: (NO.00003)iOS游戏简单的机器