c語言迷宮問題,以m n的長方陣表示迷宮,0和1分別表示迷宮中的通路和障礙

2021-05-22 19:20:19 字數 6352 閱讀 5851

1樓:匿名使用者

說一下我的想法吧

1 把初始點放入一個佇列

2 出佇列->獲取該點的上下左右座標,並且是有意義的回座標(不

答超出邊界,不是障礙)

3 將 2 獲取的點 判斷是不是終點 是結束 不是繼續4 將 2 獲取的點 加入佇列 重複 234步驟有些細節可以需要注意,可能你要排除重複的點不加入該佇列 不然會造成上下點死迴圈

2樓:匿名使用者

#define stack_size 1000

#define true 1

#define false 0

#include

short direction_up = 1;

short direction_right = 1 << 1;

short direction_down = 1 << 2;

short direction_left = 1 << 3;

short all_directions = direction_up | direction_right | direction_down | direction_left;

typedef struct  cell;

typedef struct  stack;

void initstack(stack *s)

int isempty(stack *s)

void push(stack *s, cell e)

void pop(stack *s, cell *e)

int hasdirection(cell *e, short d)

void removedirection(cell *e, short d)

int main()

stack steps;

initstack(&steps);

cell e;

e.y = entrancex;

e.x = entrancey;

e.directions = all_directions;

push(&steps, e);

visited[entrancex][entrancey] = 1;

while (!isempty(&steps))

if (e.x >

y] == 0 && !visited[e.x - 1][e.

y])  else if (e.y <

y + 1] == 0 && !visited[e.x][e.

y + 1])  else if (e.x <

&& a[e.x + 1][e.y] == 0 && !

visited[e.x + 1][e.y])  else if (e.

y >

&& a[e.x][e.y - 1] == 0 && !visited[e.x][e.y - 1])

}if (isempty(&steps))  else

return 0;}

關於學習程式設計c語言!

3樓:匿名使用者

c 和 c++ 是最有用的兩種語言

學 c 或者 c++

4樓:匿名使用者

你要開小遊戲或軟體最好用c++,c是程序導向開發,像小遊戲這些東西不好做

學習完c語言以後學習什麼程式語言最適合

5樓:

c++ ,是必須的!

書: c++ primer

6樓:銀蛛

還是學習c語言,學到精,然後再精!學那麼多語言最後那都不是那才是倒黴!再說趕時髦學it技術那是很大的困難的.

如何學習c語言

7樓:卯永芬次凰

學習c語言的方法很多,最有效的莫過於

學習心態以及學習的順序!

心態要端正,遇到問題別懷疑自己的大腦和能力,我敢保證只要你沒有智障,任何語言對你來說絕對不是問題!

學習順序非常重要,比方說你不能在不學習普通型別變數的操作下去學習陣列……我建議你好好把基礎大好,還有一個就是

c語言在執行的過程中

他的底層是如何實現的,這個很重要,

如果你按照我說的學習,c語言對你來說

很容易!

8樓:赫微蘭羅巳

藉此希望對初學者有點幫助:

一、分號

,大括號

分號。分號是表示式結束的標誌,一般表示式後面都要有。

寫「;」的時候一定要注意:是否要結束前面的語句

。注意:if,switch,for,while語句,資料型別定義,函式定義。

if(a>b)

/*if語句,沒有分號*/

while(i+=10,i!=100);

/*while語句迴圈體為空,依靠逗號語句實現迴圈*/

struct

a/*結構體資料定義,沒有分號*/

b;/*結構體變數,要有分號*/

intsum(...)

/*函式定義,沒有分號*/

大括號。大括號是一個語句段的標誌。

寫大括號時最好一次寫一對,然後把游標移到大括號裡寫

。避免遺漏。

二、運算子號

「=」與「==」

「=」用於賦值,注意「=」左邊必須是變數,右邊可以是常量也可以是變數。「==」用於判斷兩個量的大小,左右兩邊可以是常量也可以是變數(

儘量把常量寫在左邊,這樣「==」誤寫成「=」時編譯器就會報錯

)。運算表示式有它本身的值

。「=」語句值為「=」右邊的量的大小;「==」語句值為判斷結果,無外乎兩種,0(表示「==」兩邊不等)1(「==」兩邊相等)。

(i=1)==(3==4);

/*i值為1,整個表示式值為0*/

「,」逗號語句是從左到右計算,整個逗號語句的值為最後一個語句的值

i=(j=2,j+8,j++);

/*先計算j=2,值為2,j+8不是運算表示式,跳過,計算j++得到整個括號內的值3*/

「/」「/」兩邊都是整型變數的時候結果也是整型,而且結果遵循向0靠攏的原則

。運算子的優先順序及結合方向

不多說了,**一定要背牢。

三、變數

命名不要吝惜,能說明白性質儘量在變數的名字上說明。

避免老是使用一個字母,或者難以理解的變數名

。對於較長的變數命名可以使用巨集定義、型別定義。

#deine

up0x4800

/*鍵碼的巨集定義*/

typedef

struct

mem;

/*結構體變數的型別定義*/

9樓:呼新蘭騎丙

嘿嘿,你跟我有那麼一比

當初我也是成績相當不好

但是隻要感興趣,絕對是學得好的。

有人說學c++之前一定要學c。

這倒不一定

但是如果直接學c++的話

之後最好再看看c

瞭解一下也是有好處的,

c++primer

是本好書

注意不是primer

plus

這本我沒看過

甚至你可以隨便先找本爛書看

如果你屬於很好問的人的話

你一定會有很多問題

然後再看c++primer

那樣效果會很好的

另外,多上論壇

不懂問就是

積累了一定的知識之後可以試著幫著回答別人的一些問題這樣可以加強自己對語言的理解。

有一點不同意樓上的說法

c語言是基礎,但他絕不簡單

簡單的知識語法而已

而你知道語法有什麼用呢?

就好比你知道中文的語法

你就能寫出漂亮的詩歌嗎?

答案是否定的……

語法並不太必要刻意熟記,

用多了自然就記得了

思考演算法、結構

最重要的是程式設計思想。

「物件導向」不是說說而已

如果沒理解清楚那寫出來的東西說不定就是四不象。

但是不必害怕,

雖然不簡單,但也不是難以入門。

具體的在你學的過程中是能夠慢慢體會到的。

10樓:宿夕章茶

這位網友,您好:

1.我建議您先看書吧,譚老的那本還可以,適合初學,編譯器用win-tc吧,網上搜搜

2.我推薦使用vc++6.0中文版

因為國家考試用的就是那個

當然了還有turbo

c這個也是以前國家考試用的

但是這些版本很老了

而且沒有現在的方便

對於一個初學者來說

用老版本麻煩些比如你遇到了問題想去諮詢下別人老版本的尤其是比較經典的turbo

c2.0的

你需要把原來的**在寫一遍才行

而visusl

c++6.0的則可以用滑鼠進行復制操作

很是快捷

而且vc還有自動用不同的顏色來顯示不同型別的**對初學者來說

是個很好的糾錯功能

比如你的關鍵字打錯了

顏色是會變的

其實vc不僅適合初學者

它是大眾化的軟體

正因為它的優秀所以就適合很多人群

補充:vc不僅有6.0的版本

還有2005的2008的

為什麼還是建議你用6.0的呢

還是因為國家考級就是用的6.0的

而且很多人也在用它

我們都用這個

vc++6.0

這是微軟的一個功能很強大的程式設計軟體,c語言、c++語言都適用,裡面有很多很好的功能是tc無法比擬的。

希望我的答案能幫到您!

謝謝你:朋友!

學習程式設計是從c語言開始嗎?

11樓:匿名使用者

程式語言有很多種,c語言只是其中一種,學習任何一種程式語言都是程式設計

12樓:匿名使用者

可以吧當然可以從組合語言起,也行

13樓:燈光照亮暖

計算機程式設計開**行業一直

制是比較熱門的行業,想選擇學習一門計算機程式設計,首先要找到適合自己的方向。只要努力去學,有足夠的意志力,找一個合適的平臺,系統的學習一下,還是會有很大的收穫。

如果你想要專業的學習程式設計開發,更多需要的是付出時間和精力,一般在2w左右。應該根據自己的實際需求去實地看一下,先好好試聽之後,再選擇適合自己的。只要努力學到真東西,前途自然不會差。

學習c語言程式設計要什麼基礎

14樓:匿名使用者

小兄抄弟好厲害,哥這麼小的時候還襲在練打字呢bai

c語言入門還是挺容

du易的,對於你這個年齡zhi,可能很大的阻礙在於dao英文水平;所以呢,先了解c語言中的關鍵字的意思很重要,譬如void表示什麼意思,int表示什麼意思之類的;然後就是要找一本對的書很重要,對你而言,好書就是能夠看得懂的書啦,加油,祖國的it行業靠你們了

15樓:醉夢千凜

我是計算機專業學生,學c語言不用什麼基礎,英文學好,多動手,多上機學的超快

16樓:

很正常 看看基本的c語言書就行了 哥們有的大學生都沒學懂。。

17樓:指間秋陽

初中就開始學c語言了???

如何學習c語言?

18樓:z不可替代

學習方法是:

1、課前預習,課後複習,認真做課堂、課後的作業,理解理論知識。

2、記住語法規則。

3、加強邏輯思維。

4、多動手,通過練習上機瞭解它的執行過程。

5、實踐—>理論—>再實踐,剛開始學習c語言時,按示例練習,並推動理論的學習,然後再自己多思考,多上機實踐。

c語言是一門通用計算機程式語言,廣泛應用於底層開發。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。

資料結構C語言版迷宮問題,資料結構C語言版迷宮問題

剛學都這樣,想當初我學習的時候連一個單連結串列的逆置,都要理解半天。程式設計就是把實際問題給抽象成數學或非數學模型,結合資料的表示,再找到解決的方法。別忘了,學習資料結構是為了更好的運算元據。思路 首先,迷宮如何用計算機語言表示?一般用二維陣列。0表示牆,1表示路。其次,其次就是如何從迷宮中走出來了...

c語言 輸出之間素數 的程式,c語言 輸出 m,n 之間素數 的程式

首先根據數學規則,編寫判斷素數的程式。然後按照如下思路 1 輸入m和n 2 對 m,n 的整數進行遍歷。3 對每個數值進行判斷,如果是素數,則輸出。include include int is prime int n int main main 函式呼叫 f int x if floy 1 prin...

c語言的問題,C語言的問題

答案是d 最開始struct a a 表示建立了一個結構體a,它的初始資料是a.a 1001 a.b zhangda a.c 1098.0 然後a f a 呼叫了struct a f struct a t 方程並把呼叫後得到的物件賦值給a 所以接著看到這個方程,t.a 1002 strcpy t.b...