乙個換算小程式引發的測試血案

2021-07-04 16:20:10 字數 2084 閱讀 2652

請原諒我的標題寫的有些誇張,但實際情況往往比想象的更離奇。好了進入主題。小a最近正在學習c語言,這時候小a上小學的兒子小b跑過來問:「爸爸,這道數學題怎麼算?」,小a看了看題目說「一百天是多少個禮拜零多少天?」

好了,我們的小a,看到題目後不假思索,一迅雷不及掩耳盜鈴之勢寫下了如下**:

#include 

int main(void)

這是小a自己測試的結果:

小a高興地說:「來兒子,看爸爸給你算。「

這時候,小b小心翼翼的敲下:一百天, 然後把計算結果填在了作業本上。不料第二天小b哭著鼻子說:」爸爸,你騙我,答案是錯的,全班就我乙個人的答案是錯的。~~(>_

小a說,這個只能輸入數字,小b說:」爸爸,一百天就是100天 啊,「

小a想了想,最後改了程式如下:

#include 

int main(void)

printf("輸入有誤,請重新輸入:");

while (getchar() != '\n');

}printf("%d are %d week(s) %d day(s)\n",days, days/7,days%7);

return

0;}

然後小a自己又測試了一下:

然後小b說讓他再試試,這次小a緊緊的看著小b。意想不到的事還是發生了。(呵呵,小b真調皮)

小a看到這種情況仔細想了想100tian很明顯不符合輸入,即使結果是正確的也不行,我是**座,再改:

#include 

int main(void)

printf("輸入有誤,請重新輸入:");

while (getchar() != '\n');

}printf("%d are %d week(s) %d day(s)\n",days, days/7,days%7);

return

0;}

小a這次覺得可以了,然而萬萬沒想到,淘氣的小b還是那麼淘氣:

哎,我們可憐的小a被兒子小b這麼瘋了。小a抬起沉重的手指再改。

#include 

int main(void)

printf("輸入有誤,請重新輸入:");

while (getchar() != '\n');

}printf("%d are %d week(s) %d day(s)\n",days, days/7,days%7);

return

0;}

完了小a再測試:

明明輸100,為什麼不執行了? 然後小a又敲了一次100

這次為什麼又執行了,於是小a仔細看了看程式,終於找到了,原來是這句引起來的。

if(ret == 1 && getchar() == '\n' && days >= 0)

printf("輸入有誤,請重新輸入:");

while (getchar() != '\n');

因為鍵盤輸入乙個負數,前面兩個條件都滿足,只有第三個不滿足,在程式中,程式把記憶體中的-100 放到 days中去了,然後釋放記憶體,也就是說記憶體裡現在什麼都沒有了,所以while (getchar() != 『\n』);這句話就一直等待使用者輸入。然後被讀走,導致程式沒有反應。知道原因後小a這樣改了程式:

#include 

int main(void)

printf("輸入有誤,請重新輸入:");

if (ret1 != 1 || ret2 != '\n')

}printf("%d are %d week(s) %d day(s)\n",days, days/7,days%7);

return

0;}

小a看到這裡心裡暫時是滿意了。

誰知道後面還有乙隻更大的蟲子,願小a學習之路多鑽研。

乙個memset引發的血案

前幾天做了一道bst題,提交了幾次都是wa,今天抽空拿了出來仔細瞧瞧總算被我發現禍頭根源.總結原因還在於自己對memset不太了解,以前用對估計也是瞎貓撞見死耗子 memset的介紹 void memset void buffer,int ch,size t count buffer 指向某段記憶體...

乙個分號引發的「血案」

再多的表情也無法詮釋我現在的心情!a b for matrices 這是很水的一道題,然而卻整整折騰了我2個多小時。從晚上6點多開始,花了沒幾分鐘就把 敲好了,可是資料一測,竟然不對,然後就開始找問題,找了很久,我竟然都還沒看出問題在哪,越找心裡越不爽,這麼做明明對的呀,一執行怎麼就錯了呢?一直到了...

乙個strlen引發的血案

部分測試 原來是這樣的 int decryptrelation aesdecryptfromfiletobytes const std string in file path,unsigned char out data,const char aes encrypt key,int in data ...