C語言除錯用函式輸入輸出不知哪裡出了問題

時間 2022-05-20 23:10:02

1樓:篤俠

print(int num[4])

改為print(int num[4])試試

c語言被調函式輸入五個數放入陣列中呼叫到主函式,並且列印出來我列印出現了問題,不知道其他地方對不對

2樓:匿名使用者

況且京城附近,不可能的大股的土匪。

c語言除錯的問題

3樓:匿名使用者

如果你用的視覺化偵錯程式的話,那麼會出現一個console視窗或者在gui輸出區域可以直接輸入。

如果用的是gdb命令列的話,到scanf直接輸入就可以了,然後回車。會自動執行下去。

4樓:手機使用者

printf("輸入你想輸入的數");

scanf("%d",d);

/*此處為輸入介面*/

輸入你想輸入的數字 按回車

5樓:分噶爾無我

好啊 把你的** 貼上來我看看 我看看哪出錯 你這樣 我怎麼幫你啊

6樓:匿名使用者

我的理解不知道對不對,是不是除錯的時候程式執行到scanf就停止了,你不知道如何輸入內容?如果是這樣的話,除錯的時候也會有dos視窗,啟用那個視窗,就像平時一樣輸入數字按回車,就可以了,程式會就會繼續向下執行。

如果是dos視窗都不能輸入的話,還有兩個方法,但是這兩個方法都有一個問題就是必須確保scanf那句話是正確的。第一個直接賦值,直接把scanf那句話改為賦值語句,多測試幾次不同的數值,檢查出來的結果是一樣的。第二個方法,編譯器應該有變數賦值的功能(至少最近幾年的會有),這樣你直接選擇那個變數輸入你想要的數值就行了(具體操作不詳述,不同編譯器操作不同)。

以上應該能幫到你吧。

c語言 連結串列輸入輸出 程式除錯有問題 大神求解!

7樓:匿名使用者

因為你多輸了一次啊。你把create函式中改成這樣試試struct zg *creat()

p2->next=null;

return(head);}

8樓:救贖削腎客

i=0;->i=1;

試試,不需要從0開始,又不是陣列

c語言除錯,f10逐過程除錯不進入函式內部是根本不進入還是進入後直接輸出結果?求大神們詳解!!

9樓:

除錯跟程式實際執行是二個不同概念。

不過你怎麼除錯,程式是怎麼執行的就是怎麼執行的。

除錯只是在跟蹤程式運**況,而不是改變。

f10,是不進入函式內部。但是程式執行的時候還是會進入函式內部。只是你不跟蹤它進入函式內部的情況 。

10樓:匿名使用者

進入內部是f11,我靠這都什麼亂七八糟的問題。。

11樓:

程式呼叫函式時肯定會進入函式,否則怎麼知道執行函式呢!只是進去運算後,得到結果返回,並不做停留。

12樓:匿名使用者

應該是直接出結果!!

c語言,有個函式呼叫..不知道**出錯了

13樓:

int change(int a)

你可以改成 int change(int& a),並且change函式while中改成change(++a),因為a+1不能做為引用進行傳遞。然後會列印11個10後退出,因為遞迴了11層,每層退出都會列印一次.

14樓:手機使用者

2)當你呼叫這個函式時,如:swap(p2,p3);

實際上相當於 發生瞭如下初始化 int *p1=p2 , int *p2=p3;

這樣 函式裡面的p1,p2,的值就是p2,p3,的值了。而指標是間接訪問的這個知道吧。

那麼在函式裡面用p2訪問資料,和在主函式裡面用p3訪問資料,結果是一樣的。

因為p2和p3指向同一個地址。

另外說一下變數的作用域問題。解釋一下,所謂作用域就是變數有用的區域,也就是說,變數在這個區域內是有用的,在這個區域外是不能用的,也就是沒有這個變數

簡單點說,就是你在某一個函式裡面建立的變數只能在函式裡面用,也就是說,如果你在主函式裡面定義了 p1 p2,這兩個變數就只能用於主函式,在其它函式裡面不能用,如果用了的話,編譯器就會提醒你沒有定義這個變數。

同理,你上面的主函式、排序函式裡面都定義了兩個同名的指標變數 p1 p2,主函式裡的p1 p2和排序函式裡的p1 p2分別是兩個不同的變數,各自代表著不同的儲存空間。所以是不同的變數,只是同名罷了。。。不要再搞混淆了。

順便和你說一下全域性變數這個東東吧。

全域性變數就是在函式體之外定義的變數,就是說不屬於任意一個函式。它是所有函式都能用的。

是共享資料。不過如果你在某一個函式裡面有一個變數和全域性變數同名的話,全域性變數會被覆蓋掉,也就是說如果我有一個全域性變數 some ,在我的一個函式int any(void)裡面也有一個變數 some ,那麼如果我在any 函式裡用的some是any函式自己定義的而不是全域性變數。

不過,全域性變數不要經常用。。。因為共享資料很容易改,重要的是改完還不知道在**改的。。。所以容易出錯,而且也容易跟同名的區域性變數混淆,如上面的some。。。

最後,一時興起和你說一說所謂的函式呼叫吧。

當你呼叫函式的時候,系統會建立一個空間來執行函式操作。也就是說,函式的空間是在你呼叫的時候才建立的,而當你呼叫完函式之後,函式空間會被銷燬。所以呢,這樣會比較消耗時間,每一次都建立、銷燬。。。

但是用函式的話可以讓你的**看起來美觀一點,便於閱讀,同時也便於維護。。。所以,其中的利弊要自己權衡了。

另外,因為函式空間用完就銷燬了,並且,由於作用域的存在。如果你的函式沒有返回值的話,你講得不到任何資料結果(當然,如果你這個函式僅僅是用來輸出的話除外)。並且,如果你用指標的話,也可以。

因為指標式通過間接引用來進行操作的,這樣你在函式裡的操作會直接作用到指標所指向的資料上——指標消除了作用域問題,實現了資料共享,但又不會產生全域性變數那樣的問題。

不過指標也是很深奧、很危險的。。。它同時也是c語言的精華,也是c語言的缺陷。。。

貌似說太多了,希望能對你有用

危險與美麗共存

15樓:匿名使用者

如果你只是在做一道題,不妨把題貼上來,如果只是想學習一下函式的呼叫的話,不妨去找一些書好好看呀,從你編的程式來看,你對函式的認識連最起碼的常識都沒有……

c語言除錯問題 c語言除錯中輸入函式後直接win 32 執行緒關閉

用visual c++ 2010除錯一簡單c語言後輸出視窗很快消失的問題!

16樓:匿名使用者

新增標頭檔案#include

主函式的結尾新增**如下:

int main()

17樓:海笑認為

system「pause」;

最後加上這麼一句話,暫停。

18樓:匿名使用者

在return前面機上system("pause");

迴圈中完成多次輸入輸出c語言求教啊

include int main return 0 參考一樓,但是 float m,a,i,c,x 這裡將a去掉,應為你這裡定義了,後面沒有用,沒有初始化,所以會出錯! 愛我所愛 include int main return 0 int main 名字應該用字元陣列或字串型別,其他的要實現迴圈輸入...

C語言 輸入字串,然後逆序輸出

橘落淮南常成枳 可以將整數當做字串 字串長度不超過10 接收,然後反向輸出字元陣列元素即可。字串實際長度可以用strlen函式來計算。方法程式如下 include include main 杜哥是個小天才 include int main int len,i char str 100 gets st...

c語言輸入多組資料和輸出對應結果

堵丹彤 有兩個問題我想說一下 第 一 你用那個while語句雖然實現不斷輸入而不斷輸出結果,但後一結果是在前一結果基礎上 累加 產生,這顯然不合理 第 二 你要實現的 輸入多組資料後對應結果最後顯示 中 多組 具體是多少呢?可以定義三個陣列分別用來儲存n m和sum,注意每次計算sum前先初始化為0...