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< 宣告一個變數,其初始值為給出的日的天數int isdays 日 迴圈月份,從1月開始,到給出的月份的前一個月for int i 1 i 月 i 如果月份為2月份,則判斷是否為閏年 else if i 2 其它的月份,如4,6,9,11等,isdays累加30else 最後得到的isdays就是你需要... 樓主你好。答案是 32768.原因如下 32767在記憶體中以2進位制存放 0111111111111111加一後 1000000000000000 而這正是 32768的補碼。這就是運算元超過了最大能表示的範圍,運算溢位。如果想得到正確結果可以吧a,b改為long型變數。希望對你有幫助。1正數最大... 地球小使 include int main 儲存閏年和非閏年每一月的天數 printf 輸入年月日 judge year 4 0 year 400 0 year 100 0 判斷年份是不是閏年 是閏年judge就是1 否則就是0for i 0 i sum date judge i sum day 加...C給出年,月,日計算該日是該年的第幾天
簡單的c語言問題,求高手給出答案並解釋
用C語言寫函式,給出年月日,計算該日是該年的第幾天