實驗六 結構體
一、實驗內容
(一)實驗任務一
1.程式源**
//2.執行測試截圖p280例8.15
//對教材上的程式作了微調整,把輸出學生資訊單獨編寫成乙個函式模組
//列印不及格學生資訊和所有學生資訊分別呼叫
#include
#include
#include
#define n 7 //
執行程式輸入測試時,可以把n改小一些輸入測試
typedef
struct
student stu;
void input(stu,int ); /*
輸入學生資訊
*/void calc(stu,int); /*
計算總評和等級
*/int fail(stu,stu ,int); /*
不及格學生統計
*/void sort(stu,int); /*
排序*/
void print(stu, int); /*
輸出學生資訊
*/int
main()
//輸入學生資訊
void input(stu s,int
n) //
計算總評和等級
void calc(stu s,int
n) }
//不及格學生統計
//陣列s存放的是所有學生資訊,陣列t存放不及格學生資訊,n是陣列s中元素個數
//函式返回值:返回的是不及格人數
int fail(stu s,stu t,int
n) //
根據總評成績對學生記錄資訊排序
//使用的是氣泡排序演算法
void sort(stu s,int
n) }
//輸入學生資訊
void print(stu s, int
n)
3.總結在這個問題的源**中,你自己理解或編碼實現時,認為需要注意的點
注意陣列、結構體內部的傳輸,同時,注意字串的賦值操作。
(二)實驗任務二
1.程式源**
#include #include2.執行測試截圖const
int n=10;//
定義結構體型別struct student,並定義stu為其別名
typedef struct
student stu;
//函式宣告
void input(stu s, int
n);int findminlist(stu s, stu t, int
n);void output(stu s, int
n);int
main()
//輸入n個學生資訊,存放在結構體陣列s中
void input(stu s, int
n) //
輸出結構體s中n個元素資訊
void output(stu s, int
n) //
在結構體陣列中,查詢最低分學生的記錄,將其存入結構體陣列t中
//形參n是結構體陣列s中元素個數
//函式返回最低分的學生人數
int findminlist(stu s, stu t, int
n) }
for (i=0; i)
}return
count;
}
(三)實驗任務三
1.程式源**
#include #include2.執行測試截圖const
int n = 10;//
定義結構體型別struct student,並定義其別名為stu
typedef struct
student stu;
//函式宣告
void input(stu s, int
n);void output(stu s, int
n);void process(stu s, int
n);int
main()
//錄入考生資訊:准考證號,姓名,客觀題得分,操作題得分
void input(stu s, int
n) }
//輸出考生完整資訊:准考證號,姓名,客觀題得分,操作題得分,總分,等級
void output(stu s, int
n) }
//對考生資訊進行處理:計算總分,排序,確定等級
void process(stu s, int
n)
for(j=0;j)
}temp=s[j];
s[j]=s[max];
s[max]=temp;
}for (i=0; i)
else
if (i+1
<=0.5*n)
else}}
二、實驗總結
1.本次實驗中學到的新內容或增加的新理解
我熟練掌握了結構體的互相賦值,我覺得這簡直是便民利民的事情,因為結構體在某些方面和陣列有點像,但是陣列是不能相互整體賦值的,而結構體可以整體賦值就非常方便操作。也就可以縮短**。
2.本次實驗中踩的坑
這次實驗的實驗任務三,做的時間比較長,但是其實演算法很快就搭好了,被絆住的是很小的細節,就比如max用完之後沒有注意初始化,比如%c和%s的問題用錯了等等,所以還是要注意語法的複習,否則在實現相對比較複雜的程式時就會導致各種報錯和warning。
3.願意分享的一點點小小的方法
在實現乙個相對比較複雜的程式時,裡面有許多功能,功能每乙個其實比較簡單,但是由於程式裡是結構體或者複雜的陣列導致debug的時候非常複雜,這種時候我一般會另外開乙個test,把其中乙個小的功能寫乙個最簡單的小程式,把結構體用簡單的整型變數來代替,這樣來測試自己的程式模組有沒有問題。
實驗六 結構體
程式源 1 p280例8.152 對教材上的程式作了微調整,把輸出學生資訊單獨編寫成乙個函式模組3 列印不及格學生資訊和所有學生資訊程分別呼叫 45 include6 include7 include 8 define n 3 執行程式輸入測試時,可以把n改小一些輸入測試 910 typedef s...
實驗六 結構體
實驗任務1 p280例8.15 對教材上的程式作了微調整,把輸出學生資訊單獨編寫成乙個函式模組 列印不及格學生資訊和所有學生資訊程分別呼叫 include include include define n 3 執行程式輸入測試時,可以把n改小一些輸入測試 typedef struct student...
C 結構體(六)
1.結構體和指標 指向結構體變數的指標 定義形式 struct 結構體名 結構體指標名 例如 struct student p struct student stu struct student p stu p num 15 在main函式中定義乙個struct student型別的指標p p nu...