最短路程問題 用C語言編寫 會者請進 如答案可用,另有積分100相贈

2025-01-02 11:45:26 字數 3351 閱讀 1103

1樓:甲甲蟲

這實際上就是乙個最短路徑問題。

你可以先畫出圖,用資料結構把這個圖表示出來,然後用dijkstra演算法就能輕鬆搞定。

2樓:網友

是不是要求從1 到達6啊。

誰都不能到達6,有什麼用?

你看看你給的東西。

3樓:網友

你最下面那段是不是打錯拉。是30吧???

c語言編寫路線

4樓:網友

這是圖論問題。

dijkstra,floyd演算法,資料結構書上有的。

那個c語言程式設計向豔的答案能發給我麼,100積分?

5樓:網友

你的問提到底說什麼呀!看不懂呀!

6樓:帆日股價

看不太懂耶!不知道的。

請教c語言高手這題怎麼做的?感謝!採納給予100分獎勵!

7樓:網友

#include

void main()

int a[30],n,age,i; //a[30]存年齡段人數,下面會初始化為0,只用到 a[0]至z[15] 分別對應16至31 歲的人數 // n為你要輸入幾個學生的年齡 //age是迴圈內你輸入的臨時年齡,做判斷用//i迴圈變數。

for(i=0;i<30;i++)a[i] = 0; //初始化為0

printf("enter the number of the students(<30)"); //描述 這裡<30完全沒必要 可以忽略。

scanf("%d",&n); //首先輸入乙個數字 表示你接下來要輸入幾個學生的年齡。

printf("enter the age of each student:");

for(i=0;iscanf("%d",&age);//本次輸入的年齡。

if(age >= 16 &&age <= 31) a[age - 16]++//這次輸入的年齡如果在16到31之間 就記錄下 如 輸入16則a[16-16]++即a[0]記錄16歲總人數 a[1]記錄17歲總人數。

printf("zhe result is");

printf(" age number");

for(i=16;i<=31;i++)//開始輸出各個年齡段的人數i表示歲數。

printf("%3d %6d",i,a[i-16]);

8樓:網友

a[age-16]++對應年齡的人數加1,嚴格的做,最好再檢查一下輸入資料的合法性。

i = 16; i < 30;

題目中好像有點錯誤,應該定義a[31],或者改成統計16~30歲的人數。

9樓:網友

能把**橫過來麼,這樣容易看錯。

跪求二級c語言南開上機100題~!送積分!~!我要參加2009年4月的計算機2級考試

10樓:匿名使用者

發過去了,還附贈了公共基礎,不過你給分太少哦~~

11樓:嫻看落花

積分才值多少錢啊。

c語言程式設計自由落體100公尺每次下落回原高度一半求10次落地的的路程和第1次反躺高度

12樓:小小雨藝生

演算法如下。

int h=100;

int s;

s=100;

for(i=1;i<=9;i++)

s是第10次落地的路程。

用c語言編寫100!(100的階乘)

13樓:網友

// 註釋比較多,希望你不要感到厭煩,呵呵。

還記得10進位的乘法麼?

用程式語言表示出來就是。

當前的int a[4] =

然後從最低位開始用5去乘以每一位,少於10的部分就是這。

個位新的值超過10的部分就是進位,加入他的前一位的結果。

那麼從最低位開始a[0]*5=35,由於沒有進位所以a[0]=5, carry

=3,a[1]*5=30,加上進位3=33,所以a[1] =3, carry=3,以此類推最。

高位就是a[3] =2;所以我們的到的陣列就是a[4] =,結果。

當然就是2835拉。

下面我們只是用更大的進位模仿這個過程,xd

#include

#define size 500 // size 500就可以表示結果在500*6=3000位以內的大整數。

#define base 1000000 // 目前使用進位的基數,6位的底數可以處理1000以內的階乘。

超過1000的話會溢位,因為最大的六位數。

乘以4位數可能超過32位整數的範圍。

當處理大一點的階乘的話就要相應減小這個值。

所以當你求1千萬的階乘的時候記得base是10,呵呵。

unsigned int a[size];

void jiechen(int n)

if(carry != 0) //最高位有進位就調整當前最高位。

a[++max] = carry;

printf("%d!=", n); //以下是列印過程。

printf("%d", a[max]);//最高位我們不列印前面的0,不然看起來不爽xd

for(i=max-1; i>=0; i--)//注意:是從高位開始列印的。

printf("%06d", a[i]);//列印6位,注意要包括前面的0,還有修改了base的話記得改這裡!

printf("");

int main()

14樓:赤寒軒

把數都用字串處理,寫個大數的資料結構,可以表示任意大的數~

15樓:

#include

#include

#include

求n!的位數公式 log10(1)+log10(2)+·log10(n) 取整加1 */

int wei(int n)

高精度階乘核心 */

int main()

while(jinwei)

* 先輸出第乙個數,防止首位出現0 */printf("%d",x[weishu-1]);

輸出其餘的數,因為萬進位,需要補0 */for(j=weishu-2;j>=0;j--)printf("%04d",x[j]);

釋放申請的記憶體 */

free(x);

system("pause");

return 0;}

用C語言編寫,輸入數按降序排列用C語言編寫,輸入10個數按降序排列

源程式 如下 define crt secure no warnings vs環境下需要,vc不需要 include 標頭檔案 int main 定義三個變數和一個長度為10的陣列 printf 請輸入十個數 n 顯示 請輸入十個數 for i 0 i 10 i for i 1 i 10 i for...

c語言程式設計,編寫程式,求10 用C語言

程式1 題目 有1 2 3 4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?1.程式分析 可填在百位 十位 個位的數字都是1 2 3 4。組成所有的排列後再去 掉不滿足條件的排列。2.程式源 main 程式2 題目 企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時,獎金可提1...

用c語言編寫程式,求s

staticvoidmain stringargs console.writeline 結果回 是答 sum console.readkey 用c語言編寫程式,計算s 1 1 2 1 2 3 1 2 3 n include usingnamespacestd intmain cout 結果2為 re...