C 中的交通訊號燈問題,請幫忙具體解釋下其中的部分程式,急求

時間 2025-02-01 10:50:20

1樓:網友

大概是使用timer計時,畫出綠燈的時候,綠燈的timer開始,在tick事件裡將計數器自減,當計數器為0 就停止綠燈的timer開啟紅燈的timer,做同樣的計數器自減,實現紅燈,綠燈交替閃爍。

原理大概是這樣,希望有幫到你。

請解釋下下面的程式c的 謝謝了

2樓:網友

/ 函式名listinsert

功能 列表插入,/ 引數 l 目標列表指標, i 插入位置 e 需要插入的元素。

返回凱局老值 自定義型別,大約是個巨集定義 ok應該是1 error是0

猜測:大約是:

typedef int status

#define error 0

#define ok 1

status listinsert(list *l,int i,elemtype e) {

定義兩個列表的元素指標,用於列表插入操作。

struct stu *p,*q;

如果插入位置大於列表長度,或者小於1,返回錯誤。

if (i<1||i>l->length+1) return error;

因為要往i位置插入,先找到這個位置的元素。

注意,這個自定義列表大約是要求從1開始計數的。

而c語言中是0開臘春始計數,所以要 i-1

q=&(l->elem[i-1]);

將列表中從最後開始到i位置的元素全部往後移乙個位置。

注意一定要從最後乙個開始移動。

for(p=&l->elem[l->length-1];p>=q;--p)

p+1)=*p;

將元素插入這個位置。

q=e; /列表長度加一。

l->length;

返回成功。return ok;

評價:普普通通的陣列操作。盯公升其實程式寫的一般,效率太低,不能稱之為真正的list,叫做陣列差不多,:)

按照資料結構list應該是用指標操作的,那樣就不用這樣移來移去,比較快速。

3樓:網友

status listinsert(list *l,int i,elemtype e) {

struct stu *p,*q; /申明兩個結構體指標。

if (i<1||i>l->length+1) return error; /當i大於陣列l的長度或是小於1時返回錯誤標誌。

q=&(l->elem[i-1]);q指向肢納將陣列第i項的位址歷察沒。

for(p=&l->elem[l->length-1];p>=q;--p) /開始進入時p指向最後乙個元素。

p+1)=*p; /將p指向的元素向後移動乙個位置,直到p在q的前乙個位置時退沒冊出。

q=e; /將e放在q這個位置,+l->length; /調整陣列的長度,加1

return ok; /返回插入成功。

4樓:網友

往連結串列l裡的i結點前插入資料為e的結點。

dsp的程式問題。解釋一下dsp c 語言的問題

5樓:網友

從這些巨集定義可以看到c語言是如何支援硬體程式設計的。

以#define imr *(volatile unsigned int *)0x0004 為例:

1)0x0004,這個容易理解,是乙個十六進位的常數。

2)再看(volatile unsigned int *)這是乙個強制轉換,將0x0004轉換成(volatile usigned int *)

3)現在解釋volatile usigned int *是什麼。* 表示指標(位址),這個指標指向乙個 usigned int的數。最前面的volatile有特殊含義:

這個指標必須儲存在ram中(不是flash或dsp暫存器中)

4)綜合上面1)2)3)可知: (volatile unsigned int *)0x0004 的含義是:

0x0004是乙個位址,在這個位址內儲存的是乙個unsigned int 型別的整數。這個位址存在於ram

5)*(volatile unsigned int *)0x0004 最左邊多乙個*,表示取位址指向單元的內容。綜合起來的意思是:從0x0004位址單元中取出乙個usigned int 型別的資料值。

#define imr *(volatile unsigned int *)0x0004 的意思是,將從0x0004位址單元中取出乙個usigned int 型別的資料值定義為imr

7)根據dsp硬體,在dsp中ram中的 0x0004位址單元恰好是中斷管理暫存器!

8)繞了半天,#define imr *(volatile unsigned int *)0x0004 的意思是:在c語言程式中,定義了乙個巨集標示符 imr 來表示dsp中的中斷管理暫存器。在程式中,可以通過這個巨集標示符來使用這個暫存器:

unsigned int v = imr; //取出中斷管理暫存器的值並賦給v

解釋一下這個交通訊號燈

6樓:匿名使用者

三個方向分別有紅綠訊號燈單獨控制,圖示情況三個方向均禁止通行,此時不能右轉。

7樓:網友

3個紅燈分別表示表示禁止車輛向左轉彎,禁止向右轉彎和禁止直行.此時不能右轉。

8樓:匿名使用者

此交通訊號燈表示禁止車輛向左轉彎,禁止向右轉彎和禁止直行.

9樓:匿名使用者

是你說的意思啊,,但是全部都不可以走啊。

c 語言新手求助大神解釋下面這個程式怎麼執行的。

10樓:匿名使用者

表示不會在愛了,同時的答案也能被誣陷,你妹啊。

11樓:眼眶的溼潤

main() int a=5,b=-1,c;

c=adds(a,b);

printf(「%d」,c);

c=adds(a,b);

printf(「%d」,c);

int adds( int x,int y)static int m=0,n=3; //定義了靜態變數。

n*=++m; //m自加1,然後n=n*mm=n%x+y++;// n除以x取餘數然後再加上y ,賦值給m後,y再自加1

return(m);

整個計算過程是這樣的:

第一次呼叫adds(a,b);

n*=++m //m=1 n=n*1=3

m=n%x+y++;// n%x+y++=n%x+y=3%5-1=2return(m); //m=2,所以c=2,第一次結果為2第二次呼叫adds(a,b);

n*=++m //m=3 n=n*3=3*3=9m=n%x+y++;// n%x+y++=n%x+y=9%5-1=3return(m); //m=3,所以c=3,第二次結果為3提問者看這裡:

1、請提問者認真對待自己的提問,分清誰是抄襲,誰是原創。

2、每一次錯誤的,不僅證明了您的智商,也傷害了認真答題的人。

3、如果答案正確,請在15分鐘內,謝謝合作。

交通訊號燈控制系統設計c語言程式

12樓:帥得有點壞

很簡單。明天給你寫。

13樓:偷心小壞賊

我不知道怎麼控制時間,其他都會,標記一下,明天來看答案。

什麼是交通訊號燈「國際訊號」

啦體惹影視 交通訊號燈 國際訊號 聯合國約定三色燈。1968年,聯合國 道路交通和道路標誌訊號協定 對各種訊號燈的含義作了規定。紅燈表示禁止通行,綠燈表示准許通行,黃燈表示警示。訊號燈一般分兩種,一種是簡單的,只有一個圓燈,紅停綠行,綠燈亮的時候就可以在左轉的車道上左轉了。另一種複雜的,帶箭頭,只有...

交通訊號有哪幾種,交通訊號燈分為哪幾種?

交通訊號有哪幾類?有哪些作用?1 交通訊號分為 指揮燈訊號 人行橫道燈訊號 交通指揮棒訊號和手勢訊號。2 交通訊號的作用 1 指揮燈訊號 綠燈亮時,准許車輛 行人通行,但轉彎車輛須不準妨礙直行的車輛和被放行的行人通行。黃燈亮時,不準車輛 行人通行,但已越過停止線的車輛和已進入人行橫道的行人可以繼續通...

訊號燈一直紅燈或黃燈該怎麼過,交通訊號燈一直閃著紅燈和黃燈怎麼過路口

不知道你有沒有背過這樣的紅燈,停綠燈行,黃燈請你走一走,如果出現你所說的這種情況也就是說沒有綠燈,只有紅燈和黃燈,那麼好,首先我們第一點要注意,如果這條訊號的不是壞的話,我們就照前面的人怎麼走,咱們就怎麼走,這一點應該不是會成他的錯,但是如果是在十字路口,請注意你的人身安全,我覺得把紅燈我肯定是不會...