struct student { int num; char name[15]; float score[3]; float sum; };//該結構體表示學生的學號,姓名,成績和成績總和 call void calc(struct student *p,int n)//進入函數 int i, j for i ←0 to n (p+i)->sum←0; i++; for i←0 to n i++,p++; { for j←0 to 3 p->sum←p->sum+p->score[j] ; j++; } end for end call void sort(struct student *p,int n)//進入函數 int i,k,index; struct student temp;//定義新的結構體 for i←0 to n-1 , i++ { index←i; for k←i+1 to n , k++ if((p+k)->sum>(p+index)->sum)index←k; end for temp←*(p+i); *(p+i)←*(p+index); *(p+index)←temp; } end for end
2.另外一個錯誤是把temp=(p+i); (p+i)=(p+index); (p+index)=temp;中的i寫成k,後來發現這樣寫只會讓它本身和本身交換,要多注意;編程
struct staff{ char name[10]; float truth; float real; float imag; float pay;};//定義員工姓名 基本工資 浮動工資 支出 int n,i; struct staff s1[1500]; 輸入n; for i←0 to n ,i++ 輸入員工姓名,浮動工資 ,支出 end for for i←0 to n,i++ s1[i].truth ←s1[i].real+s1[i].imag-s1[i].pay;//計算基本工資 end for for i←0 to n,i++ 輸出員工姓名和基本工資
3.在PTA過得去,但在DVE 運行不了,後來發現是由於scanf("%s %f %f %f\n",s1[i].name,&s1[i].real,&s1[i].imag,&s1[i].pay);中的\n影響,在同窗建議下把\n刪除,將for後加大括號,在scanf後加上getchar(),大括號把getchar()括起來就解決了這一問題;
數組
struct time{ int cloc; int minute; int second; };//定義時,分,秒 int i,n; struct time t1; 輸入時分秒和要加的秒數n getchar();//吸取回車符 if(n!=0){ for i=1 to n,i自增 t1.second自增; if(t1.second==60) t1.minute自增; t1.second=t1.second-60; if(t1.minute==60) t1.cloc自增;//分鐘等於60,時鐘加1 t1.minute=t1.minute-60; if(t1.cloc==24) t1.cloc=t1.cloc-24; } 輸出加法運算事後的時分秒
2.發現getchar():很好用,可用於吸取多餘的回車符;編程語言
這是宵瑩6-3題結構體數組中查找指定編號人員的代碼,此代碼用flag判斷是否返回員工的信息,當遇到一個員工的編號和輸入的編號不一樣時,當即讀取下一個員工的編號,flag的值也重置爲1;直到讀取最後一個員工編號仍不符合輸入編號時,flag=0,由於題目輸入的員工編號已知,能夠在編號中找到,因此能夠不返回空串的值,若找到編號,則將此員工的信息複製到另外一個結構體上,返回那個結構體;
這是個人6-3代碼,我是採起直接用指針指向原來結構體,用strcmp函數比較std->num和num,若是找到則返回std(由於std自己自增),不然令 std->num[0]=0,再返回*std;個人思路和不少同窗思路類似,而宵瑩的思路比較獨特,不是採起調用strcmp直接比較兩個字符串,而是用嵌套循環和flag來比較,一遇到不一樣字符即進入下個字符串判斷,flag的值也在相應進行更新,最後來判斷返回何值,值得學習!
函數
這是林嶽7-6題 通信錄的錄入與顯示的代碼,我從中學會了循環k次的另外一種寫法,在尋找編號時我是用循環來查找,代碼以下:學習
而林嶽的代碼是直接用條件判斷如:if(i>=n||i<0)printf("Not Found\n");即查找不到,這樣會更簡潔明瞭,不用一次次執行循環去判斷,值得學習!設計
2.共用體是一種多變量共享存儲空間的構造類型,它容許幾種不一樣的變量共用同一存儲空間。共用體和結構體的區別:3d
1.結構體每一位成員都用來表示一種具體事務的屬性,共用體成員能夠表示多種屬性(同一存儲空間能夠存儲不一樣類型的數據)。 2.結構體總空間大小,等於各成員總長度,共用體空間等於最大成員佔據的空間。 3.共用體不能賦初值。
2.羅列本週一些錯題。
指針