標籤:after 不可 odi 奇數 整型 依次 core 斷行符號 為什麼
一、PTA實驗作業題目1:6-3 結構體數組中尋找指定編號人員1. 本題PTA提交列表
2. 設計思路
定義結構體變數q,迴圈變數i for i=0 to i<N-1 判斷要查詢的編號是否存在 如果存在,賦值給q,結束迴圈 end for 返回結構體變數q
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明
剛開始不太理解返回空串
題目2:7-1 計算職工工資1. 本題PTA提交列表
2. 設計思路
職員資訊結構定義 定義整型變數i用於迴圈,n代表有幾位職員 輸入n的值 定義結構體數組salarys[n] for i=0 to i<n 錄入職員資訊,並計算出實發工資是多少 end for for i=0 to i<n 輸出每位職員的實發工資 end for
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明
基本工資、浮動工資和支出都定義成整型的,只有實發工資是浮點型的,題目看的不夠認真
題目3:7-6 通訊錄的錄入與顯示1. 本題PTA提交列表
2. 設計思路
通訊錄資訊結構定義 定義整型變數i、j用於迴圈,n表示有幾個通訊錄好友,k表示要查詢的次數,num表示要查詢的編號 輸入n的值 定義結構體數組list[n] for i=0 to i<n 錄入通訊錄好友資訊 end for 輸入k的值 for i=0 to i<k 輸入num的值 如果num大於等於0並且小於n for j=0 to j<n 如果要查詢的編號存在,輸出該條記錄 end for 否則輸出Not Found end for
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明
最初將生日也定義成字元型的,但是只有部分正確,詢問同學後改成整型的就可以了,但是還是有點不懂為什麼字元型的不可以
電話號碼和手機號碼定義的時候,數組長度不夠大
二、本周題目集的PTA最後排名。
三、閱讀代碼
#include <stdio.h> int fibonaci(int i){ if(i == 0) { return 0; } if(i == 1) { return 1; } return fibonaci(i-1) + fibonaci(i-2);} int main(){ int i; for (i = 0; i < 10; i++) { printf("%d\t\n", fibonaci(i)); } return 0;}
用遞迴的方法
四、本周學習總結1.總結本周學習內容。結構體:
結構體可以處理不同類型的資料。結構體每一位成員都用來表示一種具體事務的屬性。結構體總空間大小,等於各成員總長度
struct 結構名 { 類型名 結構成員名1; 類型名 結構成員名2; ··· 類型名 結構成員名n;};
共用體:
共用體是一種多變數共用儲存空間的構造類型,它允許幾種不同的變數共用同一儲存空間。共用體成員可以表示多種屬性(同一儲存空間可以儲存不同類型的資料)。共用體空間等於最大成員佔據的空間。共用體常用來節省記憶體。
union 共用體名 { 成員表列 }變數表列;
union uarea { char c_data; short s_data; long l_data; }
枚舉:
若一個變數只有幾種可能的值,可以定義為枚舉類型。將變數的值一一列舉出來,變數的值只限於列舉出來的值的範圍內
enum weekday{sun,mon,tue,wed,thu,fri,sat}; enum weekday,week_end;
同時定義類型和變數
enum weekday{sun,mon,tue,wed,thu,fri,sat} workday,week_end;
枚舉元素為常量,sun、mon...sat的值依次為0、1...7
遞迴函式原理
遞迴就是子程式(或函數)直接調用自己或通過一系列調用語句間接調用自己,是一種描述問題和解決問題的基本方法。
遞迴通常用來解決結構自相似的問題。所謂結構自相似,是指構成原問題的子問題與原問題在結構上相似,可以用類似的方法解決。具體地,整個問題的解決,可以分為兩部分:第一部分是一些特殊情況,有直接的解法;第二部分與原問題相似,但比原問題的規模小。實際上,遞迴是把一個不能或不好解決的大問題轉化為一個或幾個小問題,再把這些小問題進一步分解成更小的問題,直至每個小問題都可以直接解決。因此,遞迴有兩個基本要素:
(1)邊界條件:確定遞迴到何時終止,也稱為遞迴出口。
(2)遞迴模式:大問題是如何分解為小問題的,也稱為遞迴體。遞迴函式只有具備了這兩個要素,才能在有限次計算後得出結果
在遞迴函式中,調用函數和被調用函數是同一個函數,需要注意的是遞迴函式的調用層次,如果把調用遞迴函式的主函數稱為第0層,進入函數後,首次遞迴調用自身稱為第1層調用;從第i層遞迴調用自身稱為第i+1層。反之,退出第i+1層調用應該返回第i層。
2.羅列本周一些錯題。
線性表用順序實現。請填空寫一個求線性表L 中所有奇數之和的演算法。 例如: L=(1,2,3,4,5) 其和為 9(本題結構體定義很不錯。)#include <stdio.h>#define N 10typedef struct sqlist { int data[N]; int last; }LIST; int Total(List list) { return sum; } void Show(LIST list) { int i; for(i=0;i<=list.last;i++) printf("%3d", list.data[i]); printf("\n"); }int main() { LIST list; int i,sum; for(i=0;i<=5;i++) list.data[i]=i; list.last=5; Show(list); sum=Total(list); printf("sum=%3d\n",sum); return 0;}參考答案int sum=0;for(int i=0;i<=list.last;i++) if(list.data[i]%2) sum+=list.data[i];
我的作答
int sum=0,i;
for(i=0;i<5;i++)
if(list.data[i]%2!=0)
sum=sum+list.data[i];
sum=sum+list.last;
做題的時候沒充分理解list.last表示的到底是什麼,導致理解有偏差
程式通過定義學生結構體變數,儲存了學生的學號、姓名和3門課的成績。 函數fun的功能是將形參a所指結構體變數s中的資料進行修改,並把a中地址作為函數值返回主函數,在主函數中輸出修改後的資料。例如:a所指變數s中的學號、姓名、和三門課的成績依次是: 10001、" ZhangSan "、95、80、88, 修改後輸出t中的資料應為:10002、"LiSi "、96、81、89。注意:按照順序填代碼,不要帶編號1,2,3,4。空格或斷行符號隔開。#include <stdio.h>#include <string.h>struct student { long sno; char name[10]; float score[3];}; ______2__________ Modif(struct student *p){ int i; p->sno = 10002; strcpy(p->name, "LiSi"); for (i=0; i<3; i++) ______3_______++; return _____4________;}void main(){ struct student s={10001,"ZhangSan", 95, 80, 88}, *t; int i; printf("\n\nThe original data :\n"); printf("\nNo: %ld Name: %s\nScores: ",s.sno, s.name); for (i=0; i<3; i++) printf("%6.2f ", ___1____); printf("\n"); t = Modif(&s); printf("\nThe data after modified :\n"); printf("\nNo: %ld Name: %s\nScores: ",t->sno, t->name); for (i=0; i<3; i++) printf("%6.2f ", t->score[i]); return 0;}參考答案s.score[i]struct student *p->score[i]p
我的作答
s.score[i]
struct student
p->score[i]
p
第二空沒填對體現了自己對函數的形參理解還不夠
C語言部落格作業--結構體