C語言I博客作業07


這個作業屬於那個課程 C語言程序設計II
這個作業要求在哪里 C語言I作業07
我在這個課程的目標是 學會並熟練多分支結構switch語句的使用
這個作業在那個具體方面幫助我實現目標 在PTA上各種題型的練習和老師布置的類型作業
參考文獻 百度

一、PTA作業

1.1 計算天數

本題要求編寫程序計算某年某月某日是該年中的第幾天。
輸入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)給出日期。注意:閏年的判別條件是該年年份能被4整除但不能被100整除、或者能被400整除。閏年的2月有29天。

1.1.1 數據處理

數據表達: 用了4個整型變量year,month,day,date;
每個月的情況列出
date=每個月的天數加之前的天數將表達式列出
數據處理: 定義整型變量,用case列出閏年情況,判斷是否為閏年,在列出非閏年的式子,最后輸出

偽代碼

include<stdio.h>

int main()
{
int定義年,月,日;
int定義天數=0;
scanf("%d/%d/%d"輸入年月日三個值,&year,&month,&day);
switch(月份)
{
case 1:對應的天數;break;
case 2:對應的天數;break;
case 3:對應的天數;break;
case 4:對應的天數;break;
case 5:對應的天數;break;
case 6:對應的天數;break;
case 7:對應的天數;break;
case 8:對應的天數;break;
case 9:對應的天數;break;
case 10:對應的天數;break;
case 11:對應的天數;break;
case 12:對應的天數;break;
}
if((年數%40&&年數%100!=0||年數%4000)
{
if(月份>2)
{
天數+1 ;
}
}
printf("%d",date);輸出天數
return 0;
}

1.1.2 實驗代碼截圖

1.1.3 造測試數據

輸入數據 輸出數據 說明
2000/02/25 56 2月25日是2000年的第56天
2001/07/20 201 7月20日是2001年的第201天
2005/05/27 147 5月27日是2005年的第147天

1.1.4 PTA提交列表及說明

提交列表說明:

  • 答案錯誤:第29行中%d前面加了空格
  • 答案正確:把第29行%d前面的空格刪除

1.2統計學生成績

本題要求編寫程序讀入N個學生的百分制成績,統計五分制成績的分布。百分制成績到五分制成績的轉換規則:
大於等於90分為A;
小於90且大於等於80為B;
小於80且大於等於70為C;
小於70且大於等於60為D;
小於60為E。

1.2.1 數據處理

數據表達:用了九個整型變量:N(學生數),i(控制變量),G(分數),sum(變量),A,B,C,D,E(五分制);
數據處理:定義整型變量,用for結構進行循環,用switch分支結構列出情況

偽代碼:

include<stdio.h>

main()
{
int 定義整型N(學生個數),i(控制變量),G(學生成績),sum(成績/10),A=0,B=0,C=0,D=0,E=0;
scanf("%d",&N)先輸出N;
for(i=1;i<=N;i++)循環N次的條件
{
scanf("%d",&G)輸出G;
sum=G/10;
switch(成績/10)
{
case 10:A++;break;A=A+1
case 9:A++;break; A=A+1
case 8:A++;break; B=B+1
case 7:A++;break; C=C+1
case 6:A++;break; D=D+1
default:E++;break
}
}
printf("%d %d %d %d %d",A,B,C,D,E);輸出ABCDE等級的人數
return 0;
}

1.2.2 實驗代碼截圖

1.2.3 造測試數據

輸入數據 輸出數據 說明
3 68 49 63 0 0 0 2 1 A等級的有0個,B等級的有0個,C等級的有0個,D等級的有2個,E等級的有1個
4 68 75 84 59 0 1 1 1 1 A等級的有0個,B等級的有1個,C等級的有1個,D等級的有1個,E等級的有1個
5 65 73 24 89 94 1 1 1 1 1 A等級的有1個,B等級的有1個,C等級的有1個,D等級的有1個,E等級的有1個

1.2.4 PTA提交列表及說明

提交列表說明:

  • 部分正確:第14行中B后面少了一個+
  • 部分正確:第17行中break后面少了;
  • 部分正確:第20行中少了一個%d
  • 答案正確:在第14行B后面再加一個+,在第17行break后面加上; 在第20行再加一個%d。

2.代碼互評

同學代碼截圖

自己代碼截圖

  • 該同學定義了y,n,d,我定義了year,month,day,我定義了英文全稱,他定義了英文字母
  • 該同學用if-else語句將閏年和非閏年的情況分開列出,我是直接將閏年的情況列出,再舉出非閏年情況的子式
  • 該同學的代碼都將情況列出使人易懂,我的代碼行數較少看起來沒有那么多

同學代碼截圖

自己代碼截圖

  • 該同學用了兩次for循環和一次switch結構,我只用了一次for循環和switch結構
  • 該同學用了6個常量表達式,我用了7個表達式,而且該同學用到了數組的知識
  • 該同學用了數組提前學習了后面的內容值得我學習,但是我的代碼相比較之下更簡單

3.學習總結

3.1 學習進度條

周/日期 這周所花的時間 代碼行 學到的知識點簡介 目前比較迷惑的問題
第六周 21小時 400行 如何用 MinGW-w64 來編譯C程序
第七周 24小時 478行 運用if語句完成各種數學程序 對於&&的用法不了解,現在操作不熟練
第八周 20小時 349行 掌握使用for循環語句實現指定次數的循環程序設計
第九周 23小時 264行 學會使用自定義函數 目前不太熟練
第十周 22小時 167行 熟悉多分支結構、字符型數據類型和邏輯運算符 還沒有完全熟悉
第十一周 18小時 150行 熟悉多分支結構switch語句的使用

3.2 累積代碼行和博客字數

時間 博客字數 代碼行數
第四周 525 50
第五周 645 100
第六周 0 400
第七周 2659 478
第八周 3586 597
第九周 4769 698
第十周 5897 787
第十一周 6289 897

3.3 學習內容總結和感悟

3.3.1 學習內容總結

3.3.2 學習體會

學習c語言有一段時間了,越是學到后面越難,上周學習了分支結構的嵌套,這周又學了一個語句,解題技巧又增加了,現在編代碼時沒有第一次那么吃力了,但是仍然不太熟練,我還欠缺很多的鍛煉,我以后還需要更努力的去練習,花更多的時間在這里,朝着我的目標前進


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM