希望有C語言大神幫我看一下這個程式

2021-05-02 22:14:34 字數 1984 閱讀 5122

1樓:伏從靈

這程式寫得,可讀性太差了,看著頭暈。

除錯了下,輸入資料停止執行的原因是:陣列越界訪問了。

...h=z1-z2;

n=k*h*q/10000;

n1[l][i]=n; 到這陣列越界了

解決辦法有兩個:

a) 格點數l, 輸入時不要超過100

b) 將相關陣列定義得足夠大

b-1: 在main函式之前定義一常量

#define size 300 /*你想要多大改多大*/b-2: 修改main 函式中的這些變數定義語句int v[100],month[100]; 改為 int v[size],month[size];

float n1[100][100],n2[100];

float v0p[100],qp[100],dqp[100],np[100];

float q[100];

改為:float n1[size][size],n2[size];

float v0p[size],qp[size],dqp[size],np[size];

float q[size];

b-3: 最後,修改一下這句,提醒輸入不要超限制...

printf("請輸入格點數l="); 改為:

printf("請輸入格點數l=(最大值:%d)", size);

供你參考。

2樓:篤俠

將各個陣列的大小設定為200試試(因為你的l輸入了200)

希望求大神給我詳細解釋一下這個程式 c語言的

3樓:闊氣克克

如果你提問裡說了,**是你寫的,你要幫忙查錯,我自然給你查錯。

你只是讓人解釋什麼是廣度優先遍歷,我為何要檢查佇列判空的**?既然是老師給你留的作業,**正確與否是你自己檢測的任務,你提問要求解釋的是概念,是**的意思,不是**的對錯。敢問如果你提前執行了,你知道**是有錯誤的話,你為什麼沒有在提問裡說明**有錯誤?

然後再請問,你現在理解什麼是廣度優先了麼?那如果理解了的話,你來給我講講這段**是什麼意思,我看看你是怎麼講的,你認為什麼樣的回答算是回答了你的問題?

再重複一遍,你提問的是,解釋廣度優先那一段**的意思。

我說的都是套話麼?如果你都懂,你懂什麼是佇列的話,你就應該知道佇列就是廣度優先遍歷中最佳的資料結構,它是讓圖個乙個起點好像圓心一樣,一圈一圈的訪問所有圖的其他節點。為什麼叫廣度優先,就是因為它像水紋一樣訪問圖,而不是一條道走到黑。

從這段**來看,圖的儲存用的是鄰接表,for迴圈就是從連線表裡取出隊頭元素的所有鄰接點,放入佇列,並設定為已訪問。我不覺得你真的懂我下面說的那些,否則你不會問出佇列的作用是什麼,佇列的作用,就是保證這個遍歷演算法是廣度優先的。先入隊的先訪問,還要說什麼?

我下面說的每一段話都是一句一句解釋**的意思了,拜託你能不能先有點兒知識,好好看看別人說了什麼,好好弄明白自己什麼叫懂,什麼叫不懂,再提問型麼?

圖的廣度優先遍歷,依靠佇列這個資料結構的先進先出的性質。

從乙個頂點出發,先把這個頂點的所有鄰接的點中,沒有被訪問過的頂點放入佇列,並將這些頂點標記為已訪問,執行一些訪問的操作。

然後從佇列裡取出隊頭的元素,將隊頭元素的所有鄰接的點中,沒有被訪問的頂點放入佇列。重複這些,直到訪問了所有頂點。

你不妨做乙個圖來試試看,你就能理解了。當然你一定要先學習一下佇列這個資料結構,如果你不懂佇列的話。

希望有c語言大神幫我看一下這個程式。 100

4樓:篤俠

將各個陣列的大小設定為200試試(因為你的l輸入了200)

5樓:匿名使用者

加斷點單步除錯吧。。。

6樓:逆蝶靈思

這個程式是實現什麼功能的呢?樓主可以建幾個類來簡化一下**,順便再debug執行看**有問題

求c語言大神幫我解釋一下這個c語言程式作業啊

幫我看一下這個C語言對不對

樓主剛開始學吧!針對樓主的 提點其他建議 樓主 中i是每次自增1,這樣無疑增加了電腦的計算量,雖說這是乙個很小的程式,但我們要學會合理利用自己的知識,寫 不是僅僅靠模擬來解決的,我們可以將我們已知的東西直接用進去,比如每個偶數與上乙個偶數的關係是 2,所以 簡化 include void main ...

哪個大神幫我做一下這個c語言程式設計題

1 include int fun1 int xx,int n int fun2 int xx,int n float fun3 int xx,int n int main return 0 void countvalue int a,int n n j 您好,這樣 include include ...

誰能幫我解釋一下這個c語言程式,C語言誰能幫我解釋一下這個程式裡for迴圈裡面每句的意思

這是抄乙個把輸入的 十進位制數轉換襲為二進位制數的程式,對程式略作修改 include int main 可處理稍大一點的數讀入mfor m 0 i 當m 0時for i i 0 i 頭上的i 去除開頭的0 return 0 c語言 誰能幫我解釋一下這個程式裡for迴圈裡面每句的意思?ch i ge...