C語言部落格作業--結構體

來源:互聯網
上載者:User

標籤: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語言部落格作業--結構體

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.