1. 程式人生 > >結構體和鏈表

結構體和鏈表

image 嵌套 一般數組 直接 文件 最大 圖片 這一 完成

PTA 實驗作業

7-1查找書籍

1.本題 pta 提交列表

技術分享圖片

2.設計思路

本題要求我們給定n本書的名稱和定價並編寫程序,查找並輸出其中定價最高和最低的書的名稱和定價。

尤其註意到的是要保證輸出的為保留兩位小數

這種題目我們要使用結構體,首先先定義好書名和價格為結構體,再定義 max 和 min並初始化為0用來標記最小價格和最高價格的書

再輸入書本的個數n 之後,要判斷循環變量 i 是否小於 n,不是的話直接輸出答案

是的話再輸入書本信息,並比較 s[i] 和 max 或 min 的大小,如果大於 max 則用 s[i]替換 max,min 同理,最後 i++

3.1源代碼截圖

技術分享圖片

3.2思路流程圖截圖

技術分享圖片

4.本題調試過程碰到問題及PTA提交列表情況說明

技術分享圖片

本題之前一直誤用 scanf, 忘記了書名有空格不可以用 scanf, 所以改成了 gets.

7-3 找出總分最高的學生

1.本題 pta 提交列表

技術分享圖片

2.設計思路

本題要求給定N個學生的基本信息,包括學號姓名和3門課程的成績,要求輸出總分最高學生的姓名、學號和總分。

這題和7-1那一題相類似,都是先定義並輸入學生個數n, 令循環變量初始化 i=0,同時先定義 max=0用來存放總成績最大的值

之後判斷 i 是否小於 n, 如果大於的話直接輸出總成績最高的那位學生的信息

如果小於的話依次輸入學生的三科成績還有學生姓名與學號

定義總成績 sum=三科之和並與 max 比較,如果大於 max 則令 max=s1.sum

3.1源代碼截圖

技術分享圖片

3.2思路流程圖截圖

技術分享圖片

4.本題調試過程碰到問題及PTA提交列表情況說明

技術分享圖片

本題略比7-1簡單,唯一需要註意到的就是最後輸出時候要保留兩位小數.

7-12 單向鏈表4

1.本題 pta 提交列表

技術分享圖片

2.設計思路

本題要求我們定義單向鏈表:輸入若幹個正整數(輸入-1為結束標誌)同時按輸入數據的逆序並輸出

由於這道題到本題集結束為止老師還沒教,故先用舊知識完成

首先由於題目沒有說明輸入幾個,所以我們只能先定義稍微大的數組a[i]來存放,當 a[i]不等於-1時候一直循環輸入

跳出循環之後應為需要我們逆序輸出這一串數,同時要保證最後一個不能有空格,就令 n=i-1,當 n大於或等於0時候執行循環輸出

每次輸出前要判定該數是否為最後一個,也就是說n是否為0

如果n為零則只需輸出該數就好,如果 n 不為0則需要我們輸出 n 之後再輸出空格

3.1源代碼截圖

技術分享圖片

3.2思路流程圖截圖

技術分享圖片

4.本題調試過程碰到問題及PTA提交列表情況說明

技術分享圖片

本題調試錯誤主要是因為我沒有在最後一個輸出的時候省略輸出空格導致格式錯誤

同學代碼結對互評

1.互評同學名稱

黃世坤

題目 7-6

2.我的代碼

技術分享圖片

對方代碼截圖

技術分享圖片

從代碼長度來看明顯對方的代碼比我的要短很多,這也是對方代碼的優勢所在,其次對方使用了 string.h 頭文件,使代碼更加簡單,就此而言,我更喜歡對方的代碼.

本周學習總結

1你學會了什麽

我學會的知識點:

1、結構體定義只是一種數據結構,並不是存在的實體,只是一種自定義的類型
2、結構體變量是這種類型的變量,就像是int n中的n一樣只是一個變量,它的值可以像變量一樣改變
3、結構體數組是和一般數組類似,只是它的每個元素都具有結構體的結構。

4混合定義是指在定義結構類型時候一同定義結構變量

進一步思考到用結構體去實現線性結構的鏈表,及其對鏈表的建立,結點的建健、查找、刪除、插入等綜合操作。。自己寫出這個程序,那麽我們的結構體知識點及數據結構的還有相關的基礎知識也就撐握得差不多了。我認為是這樣的。。所以近來加大了上機力度和時間。

2本周的內容,你還不會什麽?

由於少用結構的嵌套,導致對結構的嵌套使用不太熟悉.

結構體和鏈表