C語言I部落格作業03

2022-06-03 12:42:16 字數 3074 閱讀 3268

作業所屬課程

作業要求

/homework/11455

這個作業的目標

《掌握for迴圈結構》

學號<20209068>

要求讀入1個整數x,然後輸出1+2+3+...x 的和

定義了i,sum,x三個變數,三者都屬於整數型

資料用到了for的迴圈結構

q1: 用從1加到100的原題目作為模板完成此題目,答案顯示錯誤

a1:弄清x在程式中的作用,轉換思路進行更改

q2: printf("1+...+%d=%d",sum);

a2: printf("1+...+%d=%d",x,sum);

本題要求編寫程式,計算平方根序列√​1​​​+√​2​​​+√​3​​​+⋯的前n項之和。可包含標頭檔案math.h,並呼叫sqrt函式求平方根

定義了sum,i,n三個變數,其中sum是浮點型,i和n是整數型

同樣呼叫了for的迴圈語句,還呼叫了函式sqrt

q1:不明白是將標頭檔案直接替換還是增加標頭檔案math.h

a1:增加標頭檔案math.h

q2: 對於函式sqrt不知道怎麼用

a2:sum=sum+sqrt(i);

據說汪星人的智力能達到人類 4 歲兒童的水平,更有些聰明汪會做加法計算。比如你在地上放兩堆小球,分別有 1 只球和 2 只球,聰明汪就會用「汪!汪!汪!」表示 1 加 2 的結果是 3。

本題要求你為電子寵物汪做乙個模擬程式,根據電子眼識別出的兩堆小球的個數,計算出和,並且用汪星人的叫聲給出答案。

定義了a,b,i,a四個變數,都屬於整數型

運用了for的迴圈語句,在for中加入printf("wang!")以表達題意

q1:大體思路與前面兩題相差不大,主要是對於wang!的表達不太理解

a1:直接在for的迴圈語句中加入

q2:return 0;之前還要加入乙個printf("n/"),對此並不理解

a2:對之前程式的一次總表達

直觀想法

直接按問題描述進行。對於陣列中的每個元素,我們找出下雨後水能達到的最高位置,等於兩邊最大高度的較小值減去當前高度的值。

演算法

初始化 ans=0ans=0ans=0

從左向右掃瞄陣列:

初始化 max_left=0\text=0max_left=0 和 max_right=0\text=0max_right=0

從當前元素向左掃瞄並更新:

max_left=max⁡(max_left,height[j])\text=\max(\text,\text[j])max_left=max(max_left,height[j])

從當前元素向右掃瞄並更新:

max_right=max⁡(max_right,height[j])\text=\max(\text,\text[j])max_right=max(max_right,height[j])

將min⁡(max_left,max_right)−height[i]\min(\text,\text) - \text[i]min(max_left,max_right)−height[i] 累加到 ans\textans

int trap(vector& height)

for (int j = i; j < size; j++)

ans += min(max_left, max_right) - height[i];

}return ans;

}複雜性分析

時間複雜度: o(n2)o(n^2)o(n2)。陣列中的每個元素都需要向左向右掃瞄。

空間複雜度 o(1)o(1)o(1) 的額外空間。

1 與本週教學內容想契合,同樣運用了for的迴圈語句

2 解題思路大概可以理解,重要的是將解題思路用正確的**表達

3 解法中運用了一中掃瞄並更新的演算法,層層遞進,儘管顯得暴力,但是可以保證不出差錯

我的思路取自於木桶效應,即所能承受水的容量取決於最低木板的高度,當仔細思考後發現我這種思路無法用於此題。

在看了正確的解題思路後也意識到邏輯思維能力的重要性

周/日期

這週所花的時間

**行學到的知識點簡介

目前比較迷惑的問題

10/12——10/18

15h218

大致了解了c語言,運用c語言編寫最基本的程式

不太了解標頭檔案是什麼

10/19——10/23

17h260

了解斷點的相關操作,並掌握此方法來檢查**

有時候會出現無法進入逐一除錯功能

10/24——11/7

50h400

學會運用for的迴圈結構,進一步了解各種字元

還並不能熟練運用for迴圈結構

1 本週的學習相比之前難度有所增大,**複雜度明顯提高

2 往後的學習難度會繼續增大,走好每一步打好基礎及其重要

C語言I部落格作業03

一 二這個作業屬於那個課程 c語言程式設計ii 這個作業要求在 我在這個課程的目標是 掌握關係運算 if else語句 格式化輸入語句scanf 以及常用的數學庫函式 這個作業在那個具體方面幫助我實現目標 能較為熟練使用if語句 參考文獻 題目描述 為了提倡居民節約用電,某省電力公司執行 階梯電價 ...

C語言I部落格作業03

這個作業屬於那個課程 c語言程式設計ii 這個作業要求在 我在這個課程的目標是 能很熟練的運用c語言,在程式設計時提高效率 這個作業在那個具體方面幫助我實現目標 通過運用各種工具和markdown的語法來幫助我實現目標 參考文獻 題目 為了提倡居民節約用電,某省電力公司執行 階梯電價 安裝一戶一表的...

C語言I部落格作業03

這個作業屬於那個課程 c語言程式設計ii 這個作業要求在 c語言i部落格作業03 我在這個課程的目標是 提公升對c語言的認知度,並借助來熟悉markdown語法 這個作業在哪個具體方面幫助我實現目標 pta裡的作業 參考文獻 pta系統常見問題解答 題目內容描述 這是一道簡單的分段函式的計算。資料表...