這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/zswxy/CST2020-2 |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11635 |
這個作業的目標 | 掌握各種類型函數的定義、調用和申明,熟悉變量的作用域、生存周期和存儲類型。回顧和反思前面的學習,總結這周的學習。 |
學號 | 20208993 |
1.PTA實驗作業
1.1 6-1 統計某類完全平方數 (20分)
題目內容描述 :
1.1.1數據處理
數據表達 :用了整型變量n,count,num,digit,flag,N和整型數組a[10];N是從主函數中接收的整數;n作為返回值;
數據處理 :運用了自定義函數、while循環結構和if分支結構。
int IsTheNumber ( const int N )
{
int n,a[10]={0},count,num,digit,flag=0;
num=sqrt(N);
count=N;
while(count>=1){
digit=count%10;
a[digit]++;
if(a[digit]>=2){
flag=1;
break;
}
count/=10;
}
if(flag==1&&num*num==N){
n=1;
}else{
n=0;
}
return n;
}
1.1.2實驗代碼截圖
1.1.3 造測試數據
1.1.4 PTA提交列表及說明
部分正確:未考慮某些特殊情況,導致其中一個測試點未通過。
編譯錯誤:在修改程序時,某個語句后面缺少了';'或者'}'。
1.2 7-1 解一元二次方程 (10分)
題目內容描述 :
1.2.1數據處理
數據表達 :用了浮點型變量看x,x1,x2,a,b,c,m,n;a、b、c為用戶輸入的數據,x、x1、x2儲存方程根的值,
數據處理 :運用if結構的嵌套和#include<math.h>頭文件中的取絕對值庫函數。
if(a==0){
if(b!=0){
printf("x = %g",fabs(-c/b));
}
if(b==0&&c!=0)
printf("無解");
if(b==0&&c==0)
printf("無窮多解");
}
m=b*b-4*a*c;
x1=(-b+sqrt(m))/(2*a);
x2=(-b-sqrt(m))/(2*a);
if(a!=0){
if(m>0){
if(x1==-0)
x1=0;
if(x2==-0)
x2=0;
if(fabs(x1-x2)<0.0001)
printf("x1 = x2 = %g",x1);
else
1.2.2實驗代碼截圖
1.2.3 造測試數據
1.2.4 PTA提交列表及說明
部分正確:未考慮根的負零情況,和根的誤差問題。
2.代碼互評
同學代碼 :
自己代碼 :
1、黃丹同學在運用數組的時多用了一個switch分支結構,而我直接判斷數組下標為0-9個數中對應的數是否為2,如果為2則證明下標在一個整數中出現了兩次。
2、李志傑同學在對整數完全平方時未運用sqrt庫函數,而我直接用sqrt庫函數,因為主函數中有頭文件math.h,所以可以直接用庫函數。
3、總體上看起來,我的程序更簡便。
3.學習總結
3.1 學習進度條
3.2 累積代碼行和博客字數
3.3 學習內容總結和感悟
3.3.1 學習內容總結
3.3.2 學習體會
1、最熟悉的定義函數類型就是有參有返回值,其他三種還不熟悉。
2、最好不要使用全局變量,這門課程的知識在我大腦中不斷的積累。
3、同時肯定還有許多是我自己還沒有發現我自己那里沒掌握的知識點。
4、學習了這么多周后,我覺得寫程序最重要的是自己的思維,這門課程很考驗思維能力,同時寫的代碼在慢慢變長。