請C 高手指點,為什麼編譯時候沒有錯,但是執行的時候顯示有錯誤呢

2021-04-20 19:17:58 字數 1581 閱讀 2672

1樓:匿名使用者

1. for(i=0,j=i+1;i<9;)else

} 如果p[0]最小,那麼都只執行if複合語句,結果i不變,j遞增,迴圈……

for迴圈修改為:

for(i=0,j=i+1;i<9, j<10;)2.for(i=0,j=i+1;i<9;)else

} 同1,如果p[0]最大…版…同樣權

修改下for

3.for(p=a;p<(p+10);p++)cout<<*p<<" ";

在最後的輸出中,你看看你的條件設為什麼了。

p < p+10

這條件在記憶體檢測完之前永久成立,檢測完幾乎是不可能的,現在記憶體都以g為單位!

修改for迴圈為:

for(p=a;p<(a+10);p++)解決問題。

另外,這段**的功能似乎成了:

輸入10個數字,將其中最小及最大的數修改為第一個數。。。

強大!~~~

2樓:塵封夢想

這個很奇怪啊

怎麼在main裡定義函式 這不像是c++的語法int main()

{ void sr();

void wcg(int *p);

void sc(int *p);

3樓:匿名使用者

宣告貌似也應該在外面的吧。

再問問,你的程式要幹什麼?

這個c程式編譯顯示沒有錯誤,為什麼不能執行?

4樓:育知同創教育

引數復必須制是指標(地址

bai)才可du以zhi。 scanf()函式要求參

數必須是指標類dao型,即將地址傳輸到其內,才可以讓a , b變數中獲取到資料。 如果你學過指標,你就會理解了。 c語言中函式的呼叫中,引數傳遞,只能傳遞數值。

如果只是將數值傳遞過去(接收者是形參),在子函式中變化,形參的變化,不會影響到實引數據的內容。 c中,每定義一個變數,系統都會在記憶體中給其分配一個空間用來儲存資料。而這個空間的編號就是這個變數的地址。

當我們將這個地址傳遞到子函式中,子函式在運算元據時,就會改變這個地址中的資料,這樣,實參的資料是會發生變化。 而你程式中,傳遞的是a b本身的值(可能是0,可能是1,可能是任意的數),scanf()將這兩個值當作地址去操作,因此會產生系統錯誤,導致程式執行停止。

為什麼在編譯c++程式的時候是沒有錯誤的,但是執行的時候就是出不來結果

5樓:吾守護奇蹟

編譯通過只是說明沒有語法錯誤,執行不出結果就是你**邏輯問題了貼**看看吧,自己打斷點除錯一下

while(r=!0)

寫反了吧, r != 0

否則就成死迴圈了。。。

6樓:夢中睡客

可能是你沒有輸出結果吧?

7樓:翼下之風

你可以跟蹤除錯一下就知道了

8樓:百科大全才

沒有編譯錯誤, 有邏輯錯誤;

你最好把**貼出來看看;

c程式錯誤,請高手指點,c 程式6個錯誤,請高手指點

if條件要加括號,而且在條件和執行語句之間不要加分號,修改如下 include define max 200 int a max b max cnt 0 void read void void js void for i 0 i void main 你要說說你的這程式解決的是用來做什麼的啊 給你改好...

請高手指點photoshop中什麼是向量智慧物件,如何操作

操作 圖層 智慧 物件 轉化為智慧物件。當你將影象縮小後又想放大 這個回時候如果不是智慧對答象的話,你影象放大了就會失真,變得很模糊。知能物件就解決了影象放大的後失真的問題,無論你怎麼縮放影象,影象都和原來的一樣,不會變得模糊,你可以試試看 注 只能放大到原始影象,如果超過了也會失真的 ps是點陣圖...

c 關於解構函式,我有些不明白,請高手指點

第一,關於析構 樓上二位基本說的沒錯,c c 中,大括號限定了其中變數的生存週期,以你的 為例 1 int main 2 變數one和two在第3行被宣告並初始化 可以比喻成小孩出生了,此時建構函式被呼叫 在第5行的右大括號之前,這兩個變數 活到頭了 此時解構函式被呼叫。換句話說,大括號之間的任何變...