代碼運行不了什么原因?
那么你的代碼為何不能正確運行呢, 在你的scanf中讀取的內容是一個整數a,然后一個英文半角逗號,然后一個整數b,然后一個英文半角逗號,最后一個整數c;
你在測試運行的時候提供的輸入值是什么呢, 是一個整數a, 一個中文逗號, 在此時, 你需要了解一下scanf的讀取機制, 在你電腦的緩沖區中, 的確存儲了你的輸入, 是整數a, 然后一個中文逗號, 然后整數b,一個中文逗號, 最后一個整數c; scanf在從緩沖區讀取你的輸入的時候, 首先接受到了第一個數字a, 將其讀入了內存中把a賦值為a; 但是之后scanf讀到了一個中文逗號, 這與你的格式化讀入英文半角逗號并不相符, 所以scanf會自動跳過你后面的讀入, 直接執行后面的語句, 所以你的錯誤中, 只讀取到了第一個數值13;
此外, scanf的返回值會返回一個整數表示scanf函數成功讀取的變量個數, 你可以自己嘗試一下輸出你的scanf的返回值, 你的測試中可能返回值是1;
了解了問題的原因之后, 如何改正也就顯而易見了, 代碼可以保持原樣, 只需要在測試運行的時候間隔符輸入英文半角逗號即可;
此外, 給你提供2個小建議!
1.你的bett函數最好能放在main函數上面定義, 或者使用原型聲明, 否則在有的編譯器中可能會報錯, 之所以你運行正常可能是因為你的gcc默認支持了implicit function declaration功能, 如果你的bett函數返回值是float或者double可能就不行了;
2.在放出代碼請其他人幫助debug的時候, 最好要闡明自己為了解決問題而做出的努力, 而不是僅拋出問題; 而且您這樣用手機直接拍屏幕的方式非常不優雅, 不利于他人閱讀你的代碼, 也不利于他人調試你的代碼, 沒有人會愿意看著你并不清楚的圖片一行行敲和你一樣的代碼; 我推薦一個較好的姿勢可以是這樣:
option1. 在知乎中直接插入代碼塊 像這樣:
option2. 將代碼粘貼至
paste.ubuntu
之后給出代碼鏈接 然后貼出代碼截圖,方便他人調試你的代碼;