幫忙做一道題 C語言

  • 作者:由 匿名使用者 發表于 舞蹈
  • 2022-09-01

幫忙做一道題 C語言陽光下的雨露2006.06.26 回答

#include

#include

struct student

{

char name[10];

float score[8];

float total;

};

void main()

{

struct student person[3];

struct student temp;

int i,j;

float t;

strcpy(person[0]。name,“Lihong”);

strcpy(person[1]。name,“Wangjian”);

strcpy(person[2]。name,“Zhaoming”);

for (i=0;i<3;i++)

{

printf(“Please input scores of %s:”,person[i]。name);

person[i]。total=0;

for (j=0;j<8;j++)

{

scanf(“%f”,&t);

person[i]。total+=t;

person[i]。score[j]=t;

}

}

for (i=0;i<2;i++)

for (j=i+1;j<3;j++)

if (person[i]。total {temp=person[i]; person[i]=person[j];person[j]=temp;}

for (i=0;i<3;i++)

printf(“No。%d: %10s %4。1f\n”,i+1,person[i]。name, person[i]。total);

}

幫忙做一道題 C語言匿名2006.06.26 回答

這個題的基本思路,就是進行體分解:分解為n個4面體。 具體的實現,應該是將一個一個的4面體從容器上‘切’下來,直到剩下的部分也是一個4面體。 至於計算體積的時機,可以邊切邊累加,也可以切完後一次性計算。前者少個迴圈,效率更高。 我只提供思路,不寫程式碼: 第一步,因為1個頂點至少是3個面的共同定點,所以,我們從第一個頂點開始,取出3個相鄰面,取出與 該定點共邊的另外3個頂點,這樣就可以‘切’下第1個4面體,計算其體積s1。 第二步,清理工作:第一個頂點隨著4面體的切除,也被分離出去,所以從點表中刪除。3個相鄰點仍然在 容器上。 第三步,取出定點集合中的下一個頂點,按第一步和第二步迴圈,直到容器中的頂點少於4個。 e~比開始想象的要簡單得多。 不好意思,有點小錯誤:"定點"應該是"頂點" 對於輸入資料,有必要進行整理:為每一個頂點建立1個鄰點表(透過計算獲得); 另一方面,刪除頂點時,也要在其它頂點的鄰點表中刪除該頂點(如果有的話)。

Top