C语言程序设计第三次作业——选择结构(1)
(一)改錯題
將源程序進(jìn)行編譯,發(fā)現(xiàn)有錯誤信息:
錯誤信息1
錯誤原因:scanf語句中沒有用“&”
改正方法:在x前加上“&”
錯誤信息2
錯誤原因:第七行if語句后面多加了;
改正方法:去掉;
錯誤信息3
錯誤原因:第九行語句后面沒有;
改正方法:在句尾加上;
錯誤信息4
錯誤原因:第11行else語句后面不應(yīng)該加條件
改正方法:去掉else語句后的條件
錯誤信息5
錯誤原因:第15行printf語句里的引號后面和x y之間均未加“,”
改正方法:在引號和x y間均加上,
編譯成功但運行結(jié)果有誤
錯誤信息6
錯誤原因:輸入格式不對,因為scanf語句中加了換行語句“\n”
改正方法:去掉“\n”
錯誤信息7
錯誤原因:第15行語句中的%.2f和%.lf表達(dá)有誤
改正方法:將%.2f和%.lf均改為%.1f
錯誤信息8
錯誤原因:第7 行if語句中一個=是賦值兩個=才表示等于
改正方法:將=改成==,同時將scanf語句中的=%f改成%lf
編譯及運行結(jié)果
改正后的程序
(二)學(xué)習(xí)總結(jié)
1.if(a)if(b) x=x+1;else y=y+1;的確切含義是先判斷是否符合a和b條件,若果符合則執(zhí)行x=x+1語句 ,若果不符則執(zhí)行y=y+1語句。該語句的else應(yīng)與第二個if配對。若要明確表達(dá)這種語句要在語句后面加“{ }”,而且else只與離它最近的未配對的一個if配對。代碼段為
2.c語言表達(dá):表達(dá)式(-10< x <10)不能表達(dá)x在區(qū)間(-10,10)內(nèi),因為c語言中邏輯運算符的運算都是從左往右的,且運算結(jié)果為真得1 為假得0,所以任意輸入一個數(shù),先和左邊的-10比較結(jié)果不是1就是0,然后都比10小,所以無論輸入誰都可以。所以此表達(dá)不成立。正確的表達(dá)式為
3.不能表達(dá)
運行程序一,輸入123a得到如下結(jié)果
因為輸入的a并沒有被定義,所以系統(tǒng)認(rèn)為是非法字符,輸入停止,非法字符后面的被自動舍棄。修改程序,定義一個字符型變量,程序如圖
再次運行,結(jié)果為
4.關(guān)于scanf:
運行程序二,分別輸入123 45和123a,結(jié)果如下
原因如下:
因為scanf()函數(shù)的返回值是成功讀入數(shù)據(jù)的個數(shù),此程序中,定義a,b均為整型變量,所以輸入123,45,均為整型數(shù)據(jù),均合法,所以返回值為2,而輸入123,a,a為非法字符,所以只有123被賦值了,所以返回值為1,也是正確的。
修改程序(1)
運行結(jié)果如下
4.內(nèi)容總結(jié)
通過這一塊的學(xué)習(xí),我想強(qiáng)調(diào)一些細(xì)節(jié)性的問題。例如,要正確區(qū)分“==”和“=”的含義并能正確運用,還有就是老師一再強(qiáng)調(diào)的細(xì)節(jié)問題,千萬要注意那些標(biāo)點!標(biāo)點!標(biāo)點!(重要的事情說三遍)再有就是不要想當(dāng)然的把數(shù)學(xué)性思維運用到這里面。平時寫編程什么的要注意總結(jié)錯誤,養(yǎng)成良好習(xí)慣。
(三)實驗總結(jié)
(1)題目:計算分段函數(shù)[2]
(2)流程圖:
(3)源代碼
(4)測試數(shù)據(jù)及運行結(jié)果
(5)實驗分析
問題:
原因:編寫中用到了函數(shù)符但是開始時沒有標(biāo)注
解決方法:在開始標(biāo)注上#include<math.h>
(1)題目:算術(shù)入門之加減乘除
(2)流程圖:
(3)源代碼
(4)測試數(shù)據(jù)及運行結(jié)果
(5)實驗分析
問題:輸入8/6的輸出結(jié)果不對
原因:雖然一開始標(biāo)注了個g為double類型但是執(zhí)行時沒有標(biāo)注,應(yīng)該強(qiáng)制轉(zhuǎn)換一下
解決方法:在a/b處強(qiáng)制轉(zhuǎn)換一下
(1)題目:輸出三角形面積和周長
(2)流程圖:
(3)源代碼
(4)測試數(shù)據(jù)及運行結(jié)果
(5)實驗分析
問題:這道題沒多大問題,要真說問題可能就是數(shù)學(xué)公式?jīng)]學(xué)好吧。
解決方法:問了同學(xué)一下普通三角形的面積公式
4
(1)題目:出租車計價
(2)流程圖:
(3)源代碼
(4)測試數(shù)據(jù)及運行結(jié)果
(5)實驗分析
問題:計算結(jié)果總是不對
原因:這道題看似邏輯很復(fù)雜,但理清之后其實還可以,但是在表述方面出現(xiàn)了點問題,沒有注意階級運算法則
解決方法:詢問同學(xué)后,一起發(fā)現(xiàn)問題并改正了
(四)PTA提交列表
轉(zhuǎn)載于:https://www.cnblogs.com/hbnydx/p/7746968.html
總結(jié)
以上是生活随笔為你收集整理的C语言程序设计第三次作业——选择结构(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flex 布局实现 横穿线效果 自适应文
- 下一篇: node封装mysql模块