C博客做業01--分支、順序結構

0.展現PTA總分

1.本章學習總結

1.1學習內容總結

  • 第一章:瞭解C語言的產生和應用領域,學習了C語言的主要「單詞」。
標識符:由字母、數字和下劃線組成,其中第一個字符必須是字母或者下劃線。
    常量:有整型常量123,實型常量12.34,字符常量'a',字符串常量"Hello World!"等。
    運算符:有+(加)、-(減)、*(乘)、/(除)、%(求餘)、>(大於)、**>=(大於等於)**、**==(等於)**、**=(賦值)**等。
    分隔符:有;、[、]、(、)和#等。
  • 第二章:
學習瞭解C語言中的數據類型,包括int(整型),char(字符型),float(單精度浮點型),double(雙精度浮點型)。
學習了數據格式化輸出函數printf(),數據格式化輸入函數scanf(),字符輸出函數putchar(),字符輸入函數getchar()。
  • 第三章:學習如何運用if語句和switch語句來解決各類問題。
  • 小知識點
  1. 單行註釋://註釋內容;多行註釋:/* 註釋內容 */。
  2. 基本數據類型佔用空間:char(1個字節),int(4個字節),float(4個字節),double(8個字節)。
  3. 表達式count++的值爲count原來的值,表達式count--的值爲count後來的值。
  4. %d輸出10進制整數;%md輸出m位,不足左補空格,其餘正常輸出;%c輸出字符串;%f輸出實數。
  5. 優先級:賦值運算符<關係運算符<算數運算符。安全

    1.if語句的使用

  • 語法:
if(表達式) 
 {
語句1
}  
else  
{
語句2;
}
  • 注意:
    if語句表達式能夠接收全部的數據類型。
    if語句後面不能加分號。
    else子句是if語句的一部分,必須與if配對使用,不能單獨使用。
    else與最靠近它的、沒有與別的else匹配過的if相匹配。ide

    2.switch語句的使用

  • 語法:
switch(表達式)
{
             case '值1'://若值1==表達式的值,執行語句1
                      語句1;break;//阻止當前程序的執行
             case '值2':
                      語句2;break;
             case '值3':
                      語句3;break;
             default://若表達式的值不知足case的任何一種狀況,則執行default下的語句
}
  • 注意:
    case後面注意有一個空格。
    case後面的常量表達式不能相同。
    break語句只能用於循環語句和switch語句中,不能單獨使用。函數

    3.for語句的使用

  • 語法:
for(表達式1;表達式2;表達式3)
{
       循環體語句;
}
  • 說明:
    表達式1對循環變量賦初值,若前面有賦初值,這裏可不填。
    表達式2做爲循環的條件,若省略則會成爲死循環。
    表達式3設置循環的步長,改變循環變量的值。
  • 注意:
    若循環體語句由多條語句組成,必須用大括號括起來。
    必須用兩個分號分隔三個表達式,但for後面無分號。學習

    1.2本章學習體會

  • C語言是咱們學習計算機的基礎課程。在學習過程當中,我發現自身存在許多不足,基礎較爲薄弱。本身預習的時候已經對教材內容有了大概瞭解,課堂上也瞭解比較清晰,可是一到實驗殊不知道如何操做。主要的問題仍是眼高手低,刷題太少,致使本身對語法的應用不熟練。再有是作題不嚴謹,寫的代碼也不是很規範,應該本身學會進行測試,本身製造數據,並學會本身尋找錯誤。
  • 代碼量爲497行。測試

    2.PTA實驗做業

    2.1 7-12 判斷一個三位數是否爲水仙花數

    2.1.1數據處理

  • 數據表達:僅需定義一個整型變量N。
  • 數據處理:
    表達式:N>=100&&N<=999,N==pow(N%10,3)+pow((N/10)%10,3)+pow(N/100,3)
    流程結構:輸入一個整數N,若N知足表達式N>=100&&N<=999則進入if語句,不然直接輸出"Invalid Value!"當N再知足表達式N==pow(N%10,3)+pow((N/10)%10,3)+pow(N/100,3)輸出"Yes"不然進入其else子句,輸出"No"。ui

    2.2.2代碼截圖

    2.1.3本題可擴展功能

  • 本題可擴展爲輸出100到999之間的水仙花數及個數
    3d

    2.1.4PTA提交列表及說明

  • 把if()後面的分號去掉。
  • N==pow(N%10,3)+pow((N/10)%10,3)+pow(N/100,3)漏了一個等於號。
  • N==pow(N%10,3)+pow((N/10)%10,3)+pow(N/100,3)中第三個pow()裏把%改成/。code

    2.2 7-2 求冪級數展開的部分和

    2.2.1數據處理;

  • 數據表達:定義一個變量i,給它賦值1,變量n做爲循環次數,i,n都是整型變量。浮點型變量:item表示某一項的值;x表示輸入的實數;number做爲分子;product做爲分母;sum表示累加起來的項。
  • 數據處理:
    表達式:item>= 0.00001,number = number * x,product = product * i,i++,sum = sum + item,item=number/product。
    流程結構:輸入一個實數x,當item>= 0.00001時,進入while循環,當item< 0.00001時,跳出循環,累加各項,輸出sum的值。blog

    2.2.2代碼截圖

    2.2.3本題可擴展功能

  • 使用for語句循環及if語句
    字符串

    2.2.4PTA提交列表及說明

  • 表達式item>=0.00001漏了一個0
  • 錯誤給item賦值爲0,後改成1
  • 將item的類型改成double
  • 在item類型前面加上long

    2.3 7-3 輸出三角形面積和周長

    2.2.1數據處理

  • 數據表達:定義四個整型變量a,b,c,s,分別是三角形的三條邊及周長的一半,浮點型變量area,perimeter,分別是面積和周長。
  • 數據處理:
    表達式:s=(a+b+c)1.0/2,area=sqrt(s(s-a)(s-b)(s-c)),perimeter=a+b+c,(a+b>c)&&(a+c>b)&&(b+c>a)
    流程結構:輸入三個整數a,b,c,若是知足表達式(a+b>c)&&(a+c>b)&&(b+c>a)則輸出面積和周長,不然輸出"These sides do not correspond to a valid triangle"。

    2.2.2代碼截圖

    2.2.3本題可擴展功能

  • 本題可擴展爲在三條邊能構成三角形的條件下,能構成何種三角形。若三條邊知足表達式(a^2+b^2=c^2||a^2+c^2=b^2||c^2+b^2=a^2),則三條邊能構成直角三角形;若三條邊知足表達式(a==b||a==c||b==c),則三條邊能構成等邊三角形;若以上都不知足則爲銳角三角形。

    2.2.4PTA提交列表及說明

  • s=(a+b+c)1.0/2忘記了1.0/2。
  • 把(a+b>c)||(a+c>b)||(b+c>a)改爲(a+b>c)&&(a+c>b)&&(b+c>a)。
  • printf("area = %.2f; perimeter = %.2f",area,perimeter)中間漏了分號。

    3.閱讀代碼


  • 代碼功能:用公式(y-y0)=-ax^2計算第一條拋物線在building2的y,用公式(y-y0)=-b(x-x0)^2計算第二條拋物線在building2的y,最後判斷y>=h2是否成立。
  • 代碼優勢: 使用eps控制迭代精度,以避免double類型不精確,不能和0直接比較。 使用多個if語句和while語句,邏輯清晰,井井有條。 使用了const ,便於進行類型檢查,消除了一些隱患。 代碼寫得很規範,沒有明顯的安全問題。

相關文章
相關標籤/搜索