有沒有大佬能幫我看下這個程式為啥最後執行出錯了呀

2022-07-04 15:33:42 字數 2995 閱讀 5104

1樓:

根據我的 c 語言程式設計、及除錯經驗,c 語言中功能最、最強大、且最、最難於除錯的恐怕就數指標了!!由於連結串列操作比較複雜,通常的操作是:建立空表、插入元素、刪除元素、遍歷連結串列。

但是由於指標、以及連結串列的除錯非常費時、費力。雖然我無法從頭到尾單步跟蹤你的源程式,但是我大致閱讀了一下你的源程式,發現你的如下語句存在問題:

l= (sqlist *) malloc( sizeof(sqlist) ) ; /* 為指標變數 l 動態分配記憶體 */

if( l == null ) /* 若返回空指標,則表示分配記憶體失敗,退出應用程式 */

l->length=0 ; /* 分配記憶體成功,繼續往下進行 */你按照我說的再進行修改一下,試一試看看。祝你成功!!

2樓:

//已經幫你修改好了,修改過的地方我都註釋說明了,程式如下:

#define maxsize 100

#include

#include

typedef int elemtype;

typedef struct

sqlist;

sqlist*initlist()

sqlist*creat()

return(l);

}int insert(sqlist*l,int x,int i)l->data[i] = x;

l->length++;

}int getelem(sqlist*l,int i)int length(sqlist*l)

void print(sqlist *l) //列印函式void compare(sqlist*l,sqlist*m,sqlist*c)}}

}void main()

//示例執行結果如下:

f:\c_work>a.exe

請插入資料,以0結束

1 2 3 4 5 6 7 8 0

請插入資料,以0結束

2 5 6 8 4 9 1 0

線性表l:1 2 3 4 5 6 7 8

線性表m:2 5 6 8 4 9 1

線性表l長度:8

線性表m長度:7

l交m的結果:線性表c:1 2 4 5 6 8

哪位大佬幫我找一下這個程式**出錯了,執行不了?

3樓:哈哈吳啦

記得程式我待會在我的機子上執行之後發給你

4樓:月光下的

您好,很高興能夠回答您的問題。您的這個程式我沒有執行,但是大致上知道您想進行的操作。您是想通過函式的呼叫,求出10個學生成績的平均值。

您的錯誤主要在主函式中呼叫score函式的那句話。這裡面有兩個錯誤,第一,c語言中,陣列的下標是從0開始的,所以依據您的定義,這個a陣列中是沒有a〔10〕這個元素的;第二,您是要將a陣列中的每個值作為實參傳遞給b陣列中,但是若直接寫a〔10〕的話,代表只是將陣列a中下標為10的元素傳遞給b陣列。

不知您是否明白,您可以按照我上面的說明,試著再對程式進行改進,有問題再交流哦,相信您可以做得很好!

5樓:匿名使用者

正確**

錯誤:  1.main函式前最好加上int,末尾加上return 0;

2.你宣告函式的變數和定義時的變數不一樣

3.你沒有把x賦給result,最後輸出的就是0

求大佬幫我看一下這個c語言程式**出錯了?

6樓:匿名使用者

樓主 if 裡 找到了 返回 下標

沒有找到 返回 -1

for 迴圈 僅僅 一次,永遠不會找到,除非 第一個修改如下

7樓:聽不清啊

原來程式中的第27行需要下移2行才對。

不下移的話,在第一次判斷不成功的時候,不再進行第2輪、第3輪……的比較,直接就立即就返回-1了。

8樓:匿名使用者

我看一下這個c語言程式**出錯了?那首先你要把c語言的所有的程式發過來之後,我才能告訴你**出錯了?

哪位大佬幫我看看這倆程式的區別 為啥算出來結果不一樣

9樓:依夢琴瑤

上面那個先計算了i=i+2,等同於i=0+2,那麼這個時候i就等於了2,然後計算result=result+i,因為這時候i已經等於2了,那麼就是result=result+2,等同於result=0+2,一個迴圈計算結束,result等於了2

第二個計算,先計算result=result+i,等同於result=0+0,這時result得到結果為0,然後計算i=i+2,等同於i=0+2,i就等於了2,因為先計算result,所以這個迴圈中result得到的結果只是0。

由於第一種方式計算得到的是2,第二種得到的是0,所以最終第二種得到的結果永遠比第一種少。

c++符號常量,不太會用,大佬幫忙看看我的程式**有問題,總是執行不出下半截

10樓:風若遠去何人留

cin的時候 直接寫變數就可以了。

比如 cin >> num;

不要帶換行

寫了一個c語言程式,執行老是出錯,不知道是**有問題,編譯的時候也沒有錯誤,願大佬幫我解決

11樓:大維

你粘到這上面的程式 不完整! 結構體要先宣告 並且你的第一個元素mark,最好要指定大小!

#include

struct napkin

;void printa(struct napkin *dp);

int main()

void printa(struct napkin *dp)

12樓:琴海情殤

將輸出語句printf("%s\n",dp->mark)改為

大佬幫忙看看這個程式為什麼編譯沒問題,但在程式第二次迴圈執行scanf語句時會出錯?

你好,幫我看下這個有沒有收藏價值謝謝

您的這一個瓷器,真品有收藏價值的 真品一定要好好儲存!你好,請幫我看一下這個石頭是什麼石頭,有沒有收藏價值?抱歉才看到求助 瑪瑙材質 真品無疑 判斷依據 同心紋帶機構特徵 有人出價五千 趕緊出手 這樣的瑪瑙原石是按公斤 經濟價值不會很高看重量哦 你好 幫我看下這個翡翠是真是假 大概值多少錢 據我觀察...

幫我看下這個配置有沒有價格過高 還是偏低

啊!看了你的配置了,主機板很有問題 不應該用這個型號的!早停產過時了 主機板換成 捷波 890gx 799左右,臺灣大廠,很能超頻 顯示卡換成 藍寶石hd4860 白金版 750顯示器 換成 dell u2311 1550 大哥 哪有影泰顯示卡啊 到是聽過 影馳和索泰 金士頓4g 340元 金士頓使...

有沒有好心人幫我看下怎樣解決這個問題

試著讓自己和她保持一段距離.看看她是什麼反映.如果感覺和她根本不在意的話就試著讓自己慢慢去疏遠她.其實有的時候女孩子總是有些大小姐脾氣.總感覺男友是應該讓著自己的女朋友的.不應該會生太大氣.我也是這樣的.愛發脾氣.總是讓男友主動認錯.但是我也很愛我的男朋友啊.有的時候人的脾氣都是天生的.要改過來是需...