我嘗試編譯這個小小的簡單程序,但我得到「調試斷言失敗」,有人可以解釋爲什麼嗎?調試斷言失敗 - argc和argv
#include <stdio.h>
#include <stdlib.h>
#define answer 3.14
void main(int argc, char **argv)
{
float a = strtod(argv[1], 0);
printf("You provided the number %f which is ", a);
if(a < answer)
puts("too low");
else if(a > answer)
puts("too high");
else if (a == answer)
puts("correct");
}
使用方法:
打開CMD,該.exe文件拖放到它,然後寫一個空格,然後通過一個號碼,按下回車鍵。例如。 C:\test.exe 240
輕微:我想知道你爲什麼要用'double'混合'float'。值「3.14」與'strtod'的返回值一樣是'double'。最後,由於前面的測試沒有得到滿足,所以你最後一個'else if(a == answer)'是不必要的,無論如何,比較一個實際的等號並不好,尤其是比較'float'和'double'值。 –
我知道我用double來混合浮動,但它起作用。是的,最後一次檢查不起作用,但這是另一個問題。 – Black
'if(argc> 1)a = strtod(argv [1],0);' –