C語言部落格作業 結構體

2022-04-30 00:00:10 字數 1752 閱讀 8863

第乙個函式的編寫

首先要遍歷結構體陣列使sum得初始值為0,

遍歷陣列中的score與sum相加。

第二個函式編寫

先定義乙個結構體中間量temp

用選擇排序法進行排序,進行第二個函式的操作。

本題沒有問題認為可以將第乙個函式中的*s用p去操作可以節約空間,還有就是可以用typedef對結構體取別名這樣會直觀簡單一點。

定義結構體包括起始時間的小時,分鐘,秒鐘還有過了多少秒。

輸入這些資料

定義函式實現時間改變

如果秒鐘加上過去的秒鐘分鐘加1,當分鐘超過60小時加1,當小時超過24則減去24

否則則直接返回秒鐘加過去的秒鐘

本題比較容易沒問題,就是補0這個操作會比較靈活。

本題比較容易,就是整數型別轉小數一開始沒注意。

1atoi函式源**

#include#include#include#include#includeenum ret                                              //狀態,用來輸入是否合理 ,分裝成函式增加可讀性,列舉法增加可讀性

;  enum ret state = invalid;  

int my_atoi(const char *str) //指標型別傳參,操作性強加上const完美嚴謹。 

if (*str == '\0')  

while (isspace(*str))                        //若是空字串就繼續往後  ,呼叫庫函式

if (*str == '-')  

if (*str == '+' || *str == '-')  

while (*str)  

//判斷字元c是否為數字

int main()

上面的判斷**運用到了乙個acsii碼對應乙個字元的原理很巧妙。

源**的思路很強,用指標操作省空間,而且分裝的每乙個函式都很值得學習。

2.結構體和陣列有明顯的相似性就是可以同時存放多個資料,但是結構體和陣列也有明顯的差異就是陣列只能是同一種型別的資料而結構體可以是不同型別的資料,像成績,學生資訊這一類有不同資料型別的系統如果能夠運用到結構體可以大大增加可讀性和操作的簡易性。

共用體是指某一些結構體裡面一部分成員需要而另一部分不需要的型別,這種型別最大的優點就是大大節約了空間。

列舉是針對一些資料只有幾種型別比如星期只有1到5,bool型別只有對和錯,顏色只有那幾種這時候用列舉就很簡便,在我的理解列舉可以看做是一些特殊情況下巨集定義的簡便寫法。

這一題沒看到shangxian對應的是2002.

這題是我從別人那裡拿來的**,在函式裡面輸出的結果可以返回去結果就不對而且兩個位址一樣,更奇怪的是函式裡面輸出str結果返回去的輸出也會改變。 錯誤原因 沒有將函式中的陣列定義成靜態變數,若定義成普通變數它的生存週期不一樣,因此要定義成靜態變數,返回指標型別的函式一般有兩種操作 1是返回乙個傳入的指標,二是定義成全域性變數或者區域性變數。

C語言部落格作業 結構體

1.本題pta提交列表 2.設計思路 void calc struct student p,int n void sort struct student p,int n 3.截圖 4.本題除錯過程碰到問題及pta提交列表情況說明 碰到的問題 最開始用冒泡法,排序反了 解決方法 改變冒泡法內層迴圈的判...

C語言部落格作業 結構體

struct student 該結構體表示學生的學號 姓名 成績和等級 struct worker 結構體表示職員的姓名 基本工資,浮動工資 支出 實際工資 定義結構陣列s n 迴圈輸入n個職員的資訊 for i 0 to i n 1 計算s i sjgz end for 輸出n個職員姓名和實際工資...

C語言部落格作業 結構體

定義函式calc 定義整型變數i,j 用於迴圈 for i 0 to n 1 求出每個學生分數的總和 for j 0 to 2 執行演算法 p i sum p i sum p i score j end for end for 定義函式sort 定義整型變數i,j 用於迴圈 定義結構體變數 max ...