為什么圖一是對的的而圖二是錯的

uj5u.com熱心網友回復:
讀入順序錯了啊一個是先讀入字符,再讀入數字;
一個是先讀入數字,再讀入字符。
這肯定不一樣啊
uj5u.com熱心網友回復:
那為什么先讀入數字運算出來的答案是錯的
uj5u.com熱心網友回復:
scanf(“%s”, &c)有問題(記憶體越界),字串會帶有結束符‘\0’,也就是在&c地址的后一個字符被賦值為‘\0’,按照堆疊記憶體地址分布,c之后是b,b之后是a,所以‘\0’把b的記憶體資訊修改了,所以你先輸入數字的話,后輸入的c會修改b的資訊,導致結果不對,反過來先輸入字符的話,雖然字符修改了b,但后輸入的數字又把b改回來了,所以結果正確。所以正確的做法是”%s”改成”%c”
uj5u.com熱心網友回復:
你放心 都是錯的轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/94462.html
標籤:C語言
上一篇:關于使用new創建動態結構
