下面的c語言程式什麼意思啊?求解答

時間 2021-08-30 10:33:32

1樓:匿名使用者

①看懂不管什麼**都有一些非常有意思的技巧

②我假設我現在從來沒看過氣泡排序,和你一起分析一下這**

③int a[n]=; //初始化了亂序陣列

int i,j,temp; //嗯?i,j,temp幹嘛的?我暫時不知道,因為我還沒往下看,我先記著有這幾個變數

for (j=0;j<=n-2;j++)

for(i=0;i<=n-j-1;i++)//出現兩個巢狀迴圈,第一個是j從0到n-2 第二個是i從從0到n-j-i,如果沒看後面,我仍然不知道i,j具體要幹嘛,接著看

if (a[i]>a[i+1])

//這句就很明顯了,當a[i]和a[i+1]不是大於關係,就讓他們交換順序,也就用到了之前的temp變數

//換句話說,就是任意相鄰的a[i]和a[i+1]只要不是從小到大的順序,就讓相鄰的元素從小到大

//後面的**我知道,是迴圈並輸出所有陣列內元素

//再回頭分析,我人腦模擬一下,當j=0,i從0到n-1,

當j=1,i從0到n-2,

.....

當j=n-2,i從0到1,

結束迴圈

//我們再看一下,每次對比換序會有什麼影響,由於相鄰元素對比換序會導致掃描到的最右邊那個元素為最大值

//所以,當j=0,我們得到了a[n-1]是最大值,j=1得到了a[n-2]是第二大值...依此類推

//等j掃描完了,我們就得到了a[n-1]到a[0]分別是最大值,第二大值,第三大值...最小值

④以上分析隱含了什麼技巧?其實就是《演算法導論》中的一個定理:迴圈不變式

迴圈不變式:當你證明迴圈中i=0,1是對的,以及n是對的,並且都符合同樣的規則,那麼這個迴圈整個就是對的。

同樣,你能用迴圈不變式通過歸納出i=0,1步,n步時的效果,來推斷整體效果。

(類似數學第

一、第二歸納法)

一般分析複雜**分兩種:

迴圈邏輯複雜度分析:要用到迴圈不變式去判定

語義邏輯複雜度分析:要用到諸多編碼技巧和經驗,包括優先順序等等。

另外,虛機團上產品**,超級便宜

2樓:匿名使用者

這個程式有問題,據推測大概是輸出一個十六進位數,但源程式少一個函式

3樓:匿名使用者

這難道是嵌入式程式設計的**

4樓:駭客之劍

明顯是51微控制器裡面的c語言操作 , delay是延時函式,微控制器延時的,主函式裡的p1=0xfe是微控制器的埠配置 , 0xfe是十六進位制 11111110 ,1就是高電平,0就是低電平

5樓:小船哥說敏捷

這個應該是51微控制器程式設計吧

p1=_crol_(p1,1);

這句是將p1左移一位,低位補零,所以上面的for迴圈是將p1左移8位變為0x00。

我覺得p1可能是控制8個led燈的顯示的吧,這個程式應該是控制led燈每經過一個delay(200);的時間點亮一盞燈或熄滅一盞燈,具體是點亮還是熄滅要看你的硬體的設計了。

6樓:

流水燈啊,第一次點亮p0.0口得燈,其他燈熄滅,第二次p0.1依次類推,迴圈往復

有誰能幫我把下面的C語言程式改成c 程式嗎

c 程式 include using namespace std struct elem void main else cin temp 刪除偶數 tempp head while null tempp else deletep tempp tempp tempp next if 0 deletep...

C語言中d是什麼意思,C語言裡面的 ld d U都是什麼意思啊?

月兒 c 語言中 是一種表達方式,程式設計,自然也就有輸入輸出,那麼每一座城樓總也會需要進行一個安檢,所以 主要辨別個種資料型別的一種表達方式。方法 步驟 f,f,e,e,g,g 用來輸入實數,可以用小數形式或指數形式輸入。int c 1.2 int c 400 int c 55.434343 c ...

誰能幫我把下面這個C 程式改成C語言的。急啊!拜託了

會c 的c應該更沒問題啊 樓上都把要點說過了 include include include typedef struct data typedata typedef struct node listnode typedef listnode linklist linklist head listn...