C語言部落格作業 結構體

2022-05-29 14:42:11 字數 2974 閱讀 5122

struct complex;//該結構體表示複數的實部和虛部

struct complex multiply(struct complex x, struct complex y)//定義函式計算複數間的乘法

定義struct complex變數result表示函式的返回值

result.real=x.real*y.real-x.imag*y.imag計算result的實部

result.imag=x.real*y.imag+x.imag*y.real計算result的虛部

返回result

原本想直接return表示式但沒辦法同時返回虛部和實部,於是設定stuct complex變數result並返回

struct staff;//該結構體表示員工姓名,基本工資,浮動工資,支出和實發工資

定義struct staff 變數p[999]存放員工資訊,定義變數n表示輸入員工資訊的個數,變數i表示迴圈次數

輸入nfor i=0 to i=n-1

輸入 員工的姓名,基本工資,浮動工資,支出

end for

for i=0 to i=n-1

計算員工實發工資=基本工資+浮動工資-支出

end for

for i=0 to i=n-1

輸出員工姓名 實發工資

一開始設定變數p陣列長度為50但是提示不夠大,於是設為999

struct time; //該結構體表示時間的小時,分鐘,秒

設定struct time 變數p

設定變數n,k,l表示n秒後經過幾分鐘,幾小時

輸入起始時間

輸入n秒

if 起始秒+n秒<60 則秒=起始秒+n

否則 k=(起始秒+n秒)/60 , 秒=(起始秒+n秒)%60 //表示超過幾分鐘

if 起始分鐘+k<60 則分鐘=起始分鐘+k

否則 l=(起始分鐘+k)/60 ,分鐘=(起始分鐘+k)%60

if 起始小時+l<24 則小時=起始小時+l

否則 小時=(起始小時+l)%24

end if

輸出新的時間

不是很理解這道題和結構體之間的關係

1.結構體每一位成員都用來表示一種具體事務的屬性,共用體成員可以表示多種屬性(同一儲存空間可以儲存不同型別的資料)。

2.結構體總空間大小,等於各成員總長度,共用體空間等於最大成員佔據的空間。

3.共用體不能賦初值。

4.共用體變數中的值是最後一次存放的成員的值如

a.i = 1;

a.ch = 'a';

a.f = 1.5;

完成以上三個賦值語句後共用體邊量的值是 1.5而 a.i=1 和 a.ch='a'已無意義

共用體變數不能初始化例

union data

a=  錯誤!!!

union 共用體名

成員列表

變數列表

遞迴通常用來解決結構自相似的問題。所謂結構自相似,是指構成原問題的子問題與原問題在結構上相似,可以用類似的方法解決。具體地,整個問題的解決,可以分為兩部分:第一部分是一些特殊情況,有直接的解法;第二部分與原問題相似,但比原問題的規模小。實際上,遞迴是把乙個不能或不好解決的大問題轉化為乙個或幾個小問題,再把這些小問題進一步分解成更小的問題,直至每個小問題都可以直接解決。因此,遞迴有兩個基本要素:

(1)邊界條件:確定遞迴到何時終止,也稱為遞迴出口。

(2)遞迴模式:大問題是如何分解為小問題的,也稱為遞迴體。遞迴函式只有具備了這兩個要素,才能在有限次計算後得出結果

在遞迴函式中,呼叫函式和被呼叫函式是同乙個函式,需要注意的是遞迴函式的呼叫層次,如果把呼叫遞迴函式的主函式稱為第0層,進入函式後,首次遞迴呼叫自身稱為第1層呼叫;從第i層遞迴呼叫自身稱為第i+1層。反之,退出第i+1層呼叫應該返回第i層。

遞迴函式的內部執行過程

乙個遞迴函式的呼叫過程類似於多個函式的巢狀的呼叫,只不過呼叫函式和被呼叫函式是同乙個函式。為了保證遞迴函式的正確執行,系統需設立乙個工作棧。具體地說,遞迴呼叫的內部執行過程如下:

(1)運動開始時,首先為遞迴呼叫建立乙個工作棧,其結構包括值參、區域性變數和返回位址;

(2)每次執行遞迴呼叫之前,把遞迴函式的值參和區域性變數的當前值以及呼叫後的返回位址壓棧;

(3)每次遞迴呼叫結束後,將棧頂元素出棧,使相應的值參和區域性變數恢復為呼叫前的值,然後轉向返回位址指定的位置繼續執行。

C語言部落格作業 結構體

第乙個函式的編寫 首先要遍歷結構體陣列使sum得初始值為0,遍歷陣列中的score與sum相加。第二個函式編寫 先定義乙個結構體中間量temp 用選擇排序法進行排序,進行第二個函式的操作。本題沒有問題認為可以將第乙個函式中的 s用p去操作可以節約空間,還有就是可以用typedef對結構體取別名這樣會...

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個職員姓名和實際工資...