標籤:turn eal str 說明 優點 http int dea 閱讀
一、PTA實驗作業題目1:6-1 計算兩個複數之積1. 本題PTA提交列表(要提交列表,不是結果)
2. 設計思路(虛擬碼或流程圖)
struct complex{ int real; int imag;};//該結構體表示複數的實部和虛部。 定義一個結構體變數 product表示相乘後的複數 product.real(表示新複數的實部)=一個實部乘上另一個數的實部 - 一個數的虛部*另一個數的虛部 product.imag(新複數的虛部)=(x.real*y.imag)+(x.imag*y.real); 返回 product;
3.代碼(注意,,,。不要粘貼部落格上。不用用···文法去渲染)
4.本題調試過程碰到問題及PTA提交列表情況說明。
這道題的痛點在於如何表示新的複數,剛開始的時候想了挺久的,不知道要怎樣直接將整個
複數表示出來,後來換了一個思路,就是將實部和虛部分別計算。
題目2:7-1 計算職工工資1. 本題PTA提交列表(要提交列表,不是結果)
2. 設計思路
struct staff{ char name[11]; float jbear; float fdear; float cost; float income;}該結構體分別表示職工的姓名,基本收入,浮動收入,發費,和總收入定義一個 n 表示查詢的員工數輸入 n定義結構體變數 s[n] for i=0 to i=n-1 輸入 對應員工的姓名,基本收入,浮動收入,發費 總收入=基本收入+浮動收入-發費。 end for for i=0 to i=n-1 輸出 對應的姓名和總收入 end for
3.代碼(注意,,,。不要粘貼部落格上。不用用···文法去渲染)
4.本題調試過程碰到問題及PTA提交列表情況說明。
本題呢,其實我是一遍就過得,哈哈哈,不懂要說什麼,說注意點吧,就主要是對
結構體數組的使用,下表注重以下,就沒有什麼痛點。
題目3: 通訊錄的錄入與顯示1. 本題PTA提交列表(要提交列表,不是結果)
2. 設計思路
struct infor{ int year,month,day; char name[20]; char c; char gd[20],yd[20];}; 這個結構體是表示出生的時間月份,姓名,性別,固定電話,行動電話。定義一個n,表示下面將要輸入n個人的資訊。定義一個結構體數組 s[n]for i=0 to i=n-1; 輸入 姓名,性別,固定電話,行動電話 end for 再定義 y m y表示查詢的次數, m表示查詢的編號for i=0 to i=y-1 輸入m 如果 m<=n-1&&m>=0 { 輸出 姓名,固定電話,行動電話,性別,和出生年月日。 } 否則 輸出 Not Foundend for
###3.代碼(注意,,,。不要粘貼部落格上。不用用···文法去渲染)
4.本題調試過程碰到問題及PTA提交列表情況說明
本題 其實我還沒有作對,我也不知道哪裡出錯了,感覺思路都很ok,需要林麗老師幫我解答
二、本周題目集的PTA最後排名。(
三、閱讀代碼(2分)
下面代碼是要求輸入老師和同學的資訊,然後整理好,如果輸入的是成績表示輸入的是學生,如果輸入時學科則表示是老師
#include <stdio.h>#include <stdlib.h>#define TOTAL 4 //人員總數struct{ char name[20]; int num; char sex; char profession; union{ float score; char course[20]; } sc;} bodys[TOTAL];int main(){ int i; //輸入人員資訊 for(i=0; i<TOTAL; i++){ printf("Input info: "); scanf("%s %d %c %c", bodys[i].name, &(bodys[i].num), &(bodys[i].sex), &(bodys[i].profession)); if(bodys[i].profession == ‘s‘){ //如果是學生 scanf("%f", &bodys[i].sc.score); }else{ //如果是老師 scanf("%s", bodys[i].sc.course); } fflush(stdin); } //輸出人員資訊 printf("\nName\t\tNum\tSex\tProfession\tScore / Course\n"); for(i=0; i<TOTAL; i++){ if(bodys[i].profession == ‘s‘){ //如果是學生 printf("%s\t%d\t%c\t%c\t\t%f\n", bodys[i].name, bodys[i].num, bodys[i].sex, bodys[i].profession, bodys[i].sc.score); }else{ //如果是老師 printf("%s\t%d\t%c\t%c\t\t%s\n", bodys[i].name, bodys[i].num, bodys[i].sex, bodys[i].profession, bodys[i].sc.course); } } return 0;}
本題的優點在於,在結構體中利用了一個共同體,這不僅可以節省記憶體,而且用法很巧妙,
四、本周學習總結(1分)1.總結本周學習內容。
本周學習了,結構體
1:結構體的概念,定義。結構體是一種新的資料構造類型,他能把不同類型資料匯聚成一個整體,使它們相互關聯;
2:還有就是結構體數組和結構體指標的使用,
3:還有一個印象深刻的就是遞迴,說實話遞迴有點難以理解,總是會給繞進去。好需要好好領會一下
2.羅列本周一些錯題。
程式填空題:
輸入n(3<n<=10)個職工的編號、姓名、基本工資、職務工資,輸出其中“基本工資+職務工資”最少和最多的職工姓名。
輸入輸出樣本:
n=5
1,林宏,1800,600
2,李濤,1700,550
3,王鋼,2100,750
4,周航,1500,450
5,金明,2300,850
基本工資+職務工資最少的是:周航
基本工資+職務工資最多的是:金明
這題 我的答案的 struct worker s[n] &num,name,&jbpay,&zwpay;
max=i; min=i;標準答案是struct Worker s[10]
&s[i].num,s[i].name,&s[i].jbpay,&s[i]zwpay
max=i
min=i錯誤再與輸入結構數組的時候不需要用取地址符
C語言部落格作業--結構體