這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/ |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11635 |
這個作業的目標 | <熟練運用函數代碼運算> |
參考文獻 | <C語言程序與設計(第三版> |
學號 | <20208968> |
1.PTA實驗作業
1.1統計各位數字之和是5的數
1.1.1數據處理
數據表達:運用了x,j,n,sum,m,k幾個變量,且都為整型。
數據處理:運用while循環語句,用for循環進行總結運算。
1.1.2實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
104 999 | 104 is counted. count = 15, sum = 3720 | 輸出結果無誤 |
188 656 | count = 10, sum = 3110 | 輸出結果無誤 |
1.1.4PTA提交列表及說明
編譯錯誤:漏打了{return 1;},導致死循環,輸出錯誤
答案正確:加上之后測試結果正確。
1.2 解一元二次方程
1.2.1數據處理
數據表達:用了a,b,c,d,e,x1,x2,z幾個變量,其中a,b,c由scanf輸入,a,b,c為scanf輸入的值,其余的都是這三個數的衍推。
數據處理:表達式:d = b*b-4*a*c;x1= (-b+sqrt(d))/(2*a);x2= (-b-sqrt(d))/(2*a);e = (-b)/(2*a);z = sqrt(-d)/(2*a);
流程結構:先考慮if(a==0)if(b==0) if(c==0)
printf("無窮多解");
else
printf("無解");
else
printf("x = %.lg",fabs(-c/b));三種情況,在考慮 Δ的三種情況最后:
大於0,printf("x1 = %g, x2 = %g",fabs(x1),x2);
等於0,printf("x1 = x2 = %g",fabs(x1));
小於0,printf("x1 = 0+%gi, x2 = 0-%gi", z, z);
其中還要考慮(-b)/(2*a)的符號:
小於0,z=-z;printf("x1 = %g-%gi, x2 = %g+%gi",e,z,e,z);
大於0,printf("x1 = %g-%gi, x2 = %g+%gi",e,z,e,z);
1.2.2實驗代碼截圖
1.2.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
-0.2 0.04 -0.01 | x1 = 0.1-0.2i, x2 = 0.1+0.2i | 代入題目數據,兩個共軛的虛根運算正確 |
3 0 0.27 | x1 = 0+0.3i, x2 = 0-0.3i | 兩個共軛的虛根,實部為零,結果運算結果正確 |
1.2.4PTA提交列表
部分正確:一直卡在最后兩個共軛的虛根,實部為零這種情況上卡了很久,沒考慮根的符號
答案正確:通過詢問同學得到解惑,把情況考慮到位,最后正確。
2.代碼互評
同學代碼:
我的代碼:
不同點:
1.同學前面大部分思路和我相同,但最后兩個共軛的虛根,實部為零情況的考慮,他運用了絕對值,而我用的是分情況討論。
2.考慮a,b,c的符號,我直接一步到位,同學分步討論了。
同學代碼:
我的代碼:
不同點:
1..is函數該同學比我少定義一個變量
2.該同學使用n變量作為count的值沒有做到見明知義
3.1 學習進度條
3.2累積代碼行和博客字數
3.3.1學習內容總結
3.3.2 學習體會
1.這周我們學習了使用自定義函數和函數的作用域;
2.對於表達式的使用還是不太熟練,在打代碼的時候容易思緒混亂,集中不了,還要繼續練習,提升自己;
3.對於沒學的知識點,自學程度不夠,導致有些題沒有寫題思路;