C 的問題。我要計算給出頂點的多邊形的周長和麵積,頂點數目不確定,怎麼寫不確定大小的陣列呢

時間 2021-08-11 17:04:19

1樓:匿名使用者

point vertex[m];這樣寫不對,如果非要用陣列,只能 #define m 200,定義成一個固定的。其實可以使用 point * pvertex =(point *) malloc(m * sizeof(point)); 通過 ++pvertex迴圈遍歷

2樓:匿名使用者

不確定大小的陣列你可以使用vector,簡單。動手能力強一點,自己實現一個,反正本質就是:空間不夠了,重新申請一個更大的空間,複製以前的資料到新空間,釋放以前的空間。

int cap = 3;

t *data = (t *)malloc(sizeof(t)*cap);

if (*n == cap)

當然根據實際情況,可以考慮一些更簡單或者更復雜的方法。

大致看了你的**,只需要將

point vertex[m];

改為point *vertex = new point[m];

就可以了,最後別忘了deletevertex。

3樓:

既然是c++裡遇到這個問題,強烈建議樓主用stl裡的vector , stl是c++的標準模板庫,有絕對的通用性和健壯性,不怕**不相容,vector很好地處理了變長陣列的問題,比很多人手寫的都要高效,時間複雜度上是最優的策略(線性的)。

vector很好用,例如:

#include

struct point ;

int main() ) ;

return 0 ;

} //以下是主要程式,麻煩幫改一下。

#include

#include

using namespace std ;

struct point;

double polygonarea(point pvertex,int m)

int main()

else

lastx=vertex[i].x; //輸入的最後一個頂點

lasty=vertex[i].y;

}dist=distance(beginx,lastx,beginy,lasty); //最後一條邊長

sum+=dist;

cout<<"多邊形的周長為:"<

cout<<"多邊形的面積為:"<

return 0 ;}

4樓:匿名使用者

c和c++裡面分堆和棧,

棧的大小必須是事先指定的, 比如

point vertex[m];

m的大小事先不知道,所以指定不了大小。

出非你事先定義了m的大小

比如#define m 100

或const int m = 100;

所以要在堆上分配空間。

用malloc函式, 或new操作符

point *vertex = (point *)malloc(sizeof(point) * m);

或point *vertex = new point[m];

在堆上分配了資源,在程式退出時, 或程式中不在用到時,一定要記得**。

free(vertex);

或delete vertex;

不然,就回有記憶體洩漏。

5樓:匿名使用者

c++可以用new運算子,c語言裡要用malloc或者calloc函式

int*p=new int[100];

c語言中如何定義大小不確定由執行時確定大小的陣列?

6樓:手機使用者

#include

#include // malloc, freeint main()

free( p ); // 用完記得釋放

return 0;}

c++題目:設計一個函式,當已知三角形的三個頂點座標時,求三角形面積

7樓:

#include

#include

using namespace std;

int main(){

double a[2],b[2],c[2];

cin>>a[0]>>a[1];

cin>>b[0]>>b[1];

cin>>c[0]>>c[1];

double a,b,c,s,s;

a=sqrt( (b[0]-a[0])*(b[0]-a[0])+(b[1]-a[1])*(b[1]-a[1]) );

b=sqrt( (c[0]-b[0])*(c[0]-b[0])+(c[1]-b[1])*(c[1]-b[1]) );

c=sqrt( (c[0]-a[0])*(c[0]-a[0])+(c[1]-a[1])*(c[1]-a[1]) );

s=(a+b+c)/2.0;

s=sqrt(s*(s-a)*(s-b)*(s-c));

cout<

給出無向圖的鄰接矩陣,輸出各個頂點的度,要程式

include define int max 1000 define maxverticesnum 10int visited maxverticesnum typedef char vertextype typedef int edgetype typedef struct mgraph 建立圖 ...

c語言程式設計問題題目計算圓的面積,C語言程式設計問題 題目計算圓的面積。

咖啡巷 你的派值是double型的,而s值是float型的,這樣會使值失去一定的精度,還有main函式需要返回值的,可以寫return 0 你這個怎麼看都是錯的 第一,主函式是這樣定義的嗎 第二,這裡乘法運算需要把float型轉化為double型最後,沒有返還函式,了return 0 改正如下 in...

誰能給出PMT還貸函式的具體計算公式,我想手工計算。謝謝了!要具體數學計算公式

炎個夏 這實際上就是 等額本息法 的公式,如下 月還款額 本金 月利率 1 月利率 n 1 月利率 n 1 式中 月利率 年利率 12,n表示貸款月數,n表示n次方,如 180,表示180次方 貸款15年,180個月 注意 計算 1 月利率 n 1時,要先將小括號內的算出來,乘方後再減1。現假設貸款...