本例錯誤在於陣列的長度不能是變數.
**如下:
1 #include 2intmain()
316 }while(n<=0
);17
18//
用來給每個元素賦值
19for(m=0;m)
2029 }while(array[m]<=0
);30}31
32//
33do
3441 }while(x<=0
);42
43//
進行查詢
44for(m=0;m)
4551}52
53//
如果沒有找到,輸出本句
54if(b!=1)55
5859
return0;
60 }
正常執行結果是:
請輸入陣列元素的個數: 6請輸入元素1的值:
1請輸入元素2的值:
2請輸入元素3的值:
3請輸入元素4的值:
4請輸入元素5的值:
5請輸入元素6的值:
6請輸入你要查詢的值:
5要查詢的是第5個元素.
但是當元素個數是5,且查詢的值是第4個元素的值的時候,結果會出現2個:(經過驗證,目前只發現在這個情況會出現bug)
1 請輸入陣列元素的個數: 523 請輸入元素1的值: 1
45 請輸入元素2的值: 2
67 請輸入元素3的值: 3
89 請輸入元素4的值: 4
1011 請輸入元素5的值: 5
1213 請輸入你要查詢的值: 4
1415
要查詢的是第4個元素.
16 要查詢的是第5個元素.
本人初學c,懇請路過的熟手可以幫忙解釋一下是不是我哪兒寫錯了。。。謝謝大家的拔刀相助!
後來我在學習其他章節的時候突然想明白了,正確**如下:
1 #include 2#define num 5//
用來定義陣列長度
3int
main()
419 }while(array[m]<=0
);20}21
22//
23do
2431 }while(x<=0
);32
33//
進行查詢
34for(m=0;m)
3541}42
43//
如果沒有找到,輸出本句
44if(b!=1)45
4849
return0;
50 }
這樣結果就不會有bug了,原來的**如果輸出結果準確, 純屬運氣........
請輸入元素1的值: 1請輸入元素2的值:
2請輸入元素3的值:
3請輸入元素4的值:
4請輸入元素5的值:
5請輸入你要查詢的值:
4要查詢的是第4個元素.
C語言乙個微妙的Bug
1 include stdio.h 23 intarray 4 define total elements sizeof array sizeof array 0 56 void main 7執行結果是不列印true。解釋 total element所定義的值是unsigned int型別,因為si...
c 讀檔案的乙個小bug
程式如下 int fd open filename,o rdonly char c read fd,c,1 printf c d atoi c 看上去好像沒什麼問題,但結果卻大大的有問題。例如 建立檔案 echo 1 test.data 執行程式之後列印出來的有時候c是1 有時候卻是是10.神奇吧?...
Firtex的乙個小bug
症狀 索引如有字段無 一 資料,索引過程異常 原因 如該字段有資料,在索引中會生成norm檔案 b.nm檔案,b為索引桶序號,m為字段序號 合併過程中會開啟該檔案,寫入臨時檔案 mid 0 0.nm m為字段序號 由於索引過程中自始至終無資料加入該欄位,索引該 b.nm檔案不存在,開啟失敗導致異常 ...