日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

扫描法作业

發(fā)布時(shí)間:2025/4/5 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 扫描法作业 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#include<stdio.h> #include<stdlib.h> #include<math.h>#define MaxNum 15 //定義一共有十五個(gè)小區(qū);//對小區(qū)進(jìn)行結(jié)構(gòu)化定義;struct vex {int X;int Y;double Need; //定義每個(gè)小區(qū)的需求;double tan; //儲存小區(qū)的掃描角;int number; //定義小區(qū)的編號; };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;//隨機(jī)初始化小區(qū)位置點(diǎn);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;}}//按照小區(qū)的角度進(jìn)行排序,排序方法:冒泡。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;}}}//按照掃描角度的大小順序,從小到大對更小區(qū)進(jìn)行排序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");//按照旋轉(zhuǎn)角度從小到大輸出小區(qū)的位置,位置相近的小區(qū)乘坐同一輛車;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;}

?

轉(zhuǎn)載于:https://www.cnblogs.com/code-wangjun/p/4947719.html

總結(jié)

以上是生活随笔為你收集整理的扫描法作业的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。