我是C語言的初學者,寫了倆個程式,可都執行錯誤。希望大家幫忙

時間 2022-03-31 09:40:04

1樓:匿名使用者

第一個程式中,multiply函式中定義的c陣列和main函式的c陣列不是同一個,multiply函式執行完後,裡面定義的c陣列已經銷燬,在這個函式執行的過程中,main中的c陣列沒有被做任何操作,若想讓程式正確執行,應把c定義成一個全域性變數,或在multiply中傳入c這個引數;還有一個問題是multiply函式中,c陣列並不一定是5*5的,應該傳入維數引數

#include

int c[5][5];/* 全域性變數c */void multiply(int a[5][5],int b[5][5],int m,int n) }

main() }

第二個程式是因為char *name[10];只是定義了一個指標陣列,並沒有給要指向每個字串的指標分配空間,所以不能把各字串儲存到各指標指的空間中,可以這樣改:

static char[10][100];

這樣為每個字串分配了100個位元組的空間.

2樓:匿名使用者

動態分配。malloc

我是個c語言初學者,在練寫程式時,程式正確,執行時卻檢測到錯誤這個--------------------

3樓:召走刀文

上面提示的不是錯誤。0 error(s), 0 warning(s)就已經說明了。

不過有必要多說幾句

程式的錯誤分為:編譯錯誤,連結錯誤,執行錯誤,邏輯錯誤編譯錯誤一般是不符合語法規則的錯誤

連結錯誤一般是編譯器在連結這一步時發生的錯誤,比如找不到某個庫前兩個錯誤一般都可以由編譯器發現

執行錯誤,一般是程式執行時才碰到的,比如:空指標異常,除0操作,陣列下標越界等。這些錯誤編譯器是發現不了的,只有在執行時才能發現

邏輯錯誤,就是一切都符合語法,執行也不錯,但是不符合你想要達到的邏輯。

4樓:匿名使用者

no relevant changes detected 意思就是前一次已經編譯好了,這次編譯沒有進行修改,就跳過重新編譯,這個不是錯誤。現在你就可以執行程式了呀。

5樓:匿名使用者

你確定這是錯誤嗎?

程式提示0錯誤,0警告,應該是沒錯誤的。

即使有錯誤,也是執行時錯誤,不會在這裡提示出來的,這裡提示的都是編譯錯誤和連線錯誤,你的程式已經正確編譯,並且正確連線了。

編寫一個二維陣列的c語言程式,編譯時沒有錯誤,但是沒法執行,希望大家可以指出錯誤或者修改意見

c語言的問題,我是初學者一個。下面的程式為什麼可以編譯但會停止執行?

6樓:

關於 c 語言程式出錯的型別有很多。例如:語法錯誤、隱藏的未知錯誤等。

其中:語法錯誤是最容易排除的。例如:

int num = 10 ,如果在該語句後面缺少了一個分號,那麼編譯器就會報錯(正確的語句應該是:int num = 10 ;);但是隱藏的未知錯誤,那麼除錯起來可就是非常困難了,如果沒有豐富的程式設計經驗,那麼當程式出現故障時,是很難除錯的,例如如下程式**:

void main( )

像這個 c 程式中的錯誤,無論從程式的邏輯性上進行檢查都是正確的:首先從鍵盤輸入兩個浮點數,然後輸出這兩個浮點數相除的結果。

但是該程式中缺少了一個重要的判斷語句就是:除數不能夠為零!!只要你的除數不為零,那麼你測試多少次,結果都是正確的,但是一旦除數為零了,例如:

10.0/0.0,那麼系統必然會崩潰的!!

像這類 c 語言錯誤,編譯器是絕對檢查不出來的,這個就需要豐富的程式設計經驗、以及編寫程式**的嚴謹性了。

所以說你必須要把程式的詳細源**寫出來,別人才能夠幫助你進行分析。

你把所有的中文分號更改為 英文的分號,另外,應該是:stdio.h就正確了。祝你成功!!

#include

int main(void)

各位大神,我想請教大家一個問題,這個c程式顯示有一個錯誤,我找了很多遍都沒找到,麻煩大家幫幫忙

7樓:匿名使用者

程式不執行可能有如下原因:1、程式本身有錯,但是編譯軟體沒有檢測出來。2、程式無錯,但程式不完整。3、沒有寫輸出語句(println語句)

請高手幫忙分析幾個C語言程式,本人是初學者,請多多指教

1.你寫的那個fun函式形參型別是傳值不是傳地址,所以執行完fun後a,b,c的值都沒有變化,而你的c沒有初始化,如果是區域性變數,那就是以前殘留在堆疊裡的隨機值。所以是不確定的 2.194這是16進位制的 然後加上9 2 18 12h 所以 194h 12h 1a6h,選d 3.goodgood ...

我是C語言初學者請問我下面的程式哪出問題咯!求M和N的最大公約數

if m n 0 改為if m n 0 if m n m 0 改為if m n m 0 if n m 0 改為 if n m 0 演算法錯誤 include int fun int m,int n 把大數放前面 if n 0 return m else return fun n,m n void m...

C語言幫忙改個錯,我初學者

可以的。include void max int q,int d void main p a 0 for i 1 i q d q a 0 p?a 1 a 0 確保q指向的不是最大元素 for i 0 i printf 最大數為 d n p printf 次最大數為 d n q void max in...