第三次作業


##pta第三次作業(1)6-1 輸出月份英文名 ###1.設計思路 ####(1)主要描述題目算法 第一步:調用函數 第二步:使用switch語句完成此程序 第三步:寫出關於mouth的switch語句 第三步:如果輸入的不是1到12之間的數字則返回NULL #####(2)流程圖

###2.實驗代碼 char *getmonth( int n ) { switch (n){ case 1:return "January";break; case 2:return "February";break; case 3:return "March";break; case 4:return "April";break; case 5:return "May";break; case 6:return "June";break; case 7:return "July";break; case 8:return "August";break; case 9:return "September";break; case 10:return "October";break; case 11:return "November";break; case 12:return "December";break; default:return NULL; }

} 

###3.錯誤信息及改正放法 錯誤信息1:switch后面忘記加n 改正方法:復習switch語句 ##pta第三次作業(1)6-2 查找星期 ###1.設計思路 ####(1).描述算法 第一步:調用函數 第二步:定義一個整型變量i,因為星期是屬於字符串所以需要定義i字符串數組,day[7][10] 第三步:利用for循環遍歷數組,判斷輸入的字符串是否與for循環中的相同,如果相同就跳出循環,如果遍歷完整個數組仍然沒有招到相同的則此時i=7,也要結束返回i為-1 ###2.實驗代碼 int getindex(char *s)
{
int i;
char day[7][10] = { "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday" };
for (i = 0; i ⇐ 6; i++)
{
if (strcmp(s, day[i]) == 0) break;
}
if (i == 7) i = -1;
return i;
}
###3.錯誤信息及改正方法 錯誤信息:試圖使用第一題的算法,使用switch語句。 改正方法:switch語句不能應用於字符串里面,使用字符數組 ##pta第三次作業(1)計算字符串長度 ###1.設計思路 ####(1).算法 第一步:調用函數 第二步:定義整型變量i,a 第三步:先令最大值為第一項的長度max=strlen(s[0]) 第四步:通過for循環進行遍歷數組,將最大值與數組中的第二項至最后一項進行比較如果有出現比最大值大的就直接將值賦給最大值並返回 ####(2)流程圖 ###2.實驗代碼 int max_len( char s[], int n ) { int i,a; int max=strlen(s[0]); for(i=1;i<n;i++){ a=strlen((s+i)); if(a>max) max=a; } return max; } ###3.錯誤信息及改正 錯誤信息: ##pta第三次作業(1) ###1.設計思路 ####(1).算法描述 第一步:調用函數,初始化i=0,j=0,k=0.len=0指針變量p=null; 第二步:利用for循環判斷如果s[i]=ch1令p=&s[i] 第三步:利用j進行for循環找到相應的ch2停止 ###2.實驗代碼 char *match( char *s, char ch1, char ch2 ){

    int i=0,j=0,k=0,len=0;  
    char *p=NULL;  

    len = strlen(s);  

    for(i=0;i<len;i++){  
        if(s[i]==ch1){  
            p=&s[i];  
            for(j=i;j<len;j++){  
                if(s[j]!=ch2){  
                    printf("%c", s[j]);  
                }  
                if(s[j]==ch2){  
                    printf("%c\n", s[j]);  
                    return p;  
                }     
            }  
            printf("\n");  
            return p;  
        }  
    }  
    printf("\n");  
    return p;  
}  

###3.錯誤信息

##pta第三次作業(2)奇數值結點鏈表 ###1.設計思路 ####(1).算法 第一步:調用函數 第二步:定義結構體變量head=NULL,p=NULL,q=NULL,動態分配p,q,使用while循環,如果p->data!=0,進行if語句 第三步:調用函數,定義*head=NULL,*q=NULL,*p,*m=NULL,h=NULL,當L=NULL時進行for循環 ###2.實驗代碼 struct ListNode *readlist(){ struct ListNode *head=NULL,*p=NULL,*q=NULL; int data; p=q=(struct ListNode *)malloc(sizeof(struct ListNode)); scanf("%d",&p->data); while(p->data!=-1){ if(headNULL)else{ q->next=p; } q=p; p=(struct ListNode *)malloc(sizeof(struct ListNode)); scanf("%d",&p->data); } q->next=NULL; return(head); } struct ListNode *getodd( struct ListNode **L ){ struct ListNode *head=NULL,*q=NULL,*p,*m=NULL,*h=NULL; if(*L!=NULL){ for(head=*L;head!=NULL;head=head->next){ if(head->data%2!=0){ if(hNULL)else{ p->next=head; } p=head; }else{ if(qNULL)else{ m->next=head; } m=head; } } p->next=NULL; if(m!=NULL) m->next=NULL; *L=q; }else{ return NULL; } return(h); } ##pta第三次作業(2)6-2 學生成績鏈表處理 ###1.設計思路 ####(1)算法 第一步:調用函數 第二步:定義結構體指針p,令head=null對p和ptr進行動態分配 第三步:判斷如果p->num!=0則讀入數據否則就將p的值賦給p->next 第四步:調用函數,定義結構體變量 第五步:如果n=NULL即進行for循環,如果min_score>p->score且p=head則將p->next賦值給head否則將p->next賦值給ptr->next ###2.實驗代碼 struct stud_node *createlist(){ struct stud_node *head=NULL,*p=NULL,*ptr=NULL; p=ptr=(struct stud_node *)malloc(sizeof(struct stud_node)); int num; char name[20]; int score; scanf("%d",&p->num); while(p->num!=0){ scanf("%s %d",p->name,&p->score); if(headNULL)else{ p->next=p; } ptr=p; p=(struct stud_node *)malloc(sizeof(struct stud_node)); scanf("%d",&p->num); } ptr->next=NULL; return (head); } struct stud_node *deletelist( struct stud_node *head, int min_score ){ struct stud_node *p,*ptr,*a; int i; if(p!=NULL){ for(a=head;a!=NULL;a=a->next){ p=head; while(min_score<=p->score&&p->next!=NULL) if(min_score>p->score){ if(p==head)else{ ptr->next=p->next; } } } } return (head); } ##pta第三次作業(2)6-3 鏈表拼接 ###1.設計思路 ###2.實驗代碼 沒怎么聽懂,作業是從網上參考來的 struct ListNode *mergelists(struct ListNode *list1, struct ListNode *list2) { int num = 0; int temp[100]; struct ListNode *p = list1; while(p != NULL) { temp[num] = p->data; num++; p = p->next; } p = list2; while(p != NULL) { temp[num] = p->data; num++; p = p->next; } int i,j; for(i = 0; i < num; i++) for(j = i + 1; j < num; j++) { if(temp[i] > temp[j]) { int t; t = temp[i]; temp[i] = temp[j]; temp[j] = t; } } struct ListNode *newlist = NULL; struct ListNode *endlist = NULL; struct ListNode *q; for(i = 0; i < num; i++) { q = (struct ListNode *)malloc(sizeof(struct ListNode)); q->data = temp[i]; if(newlist == NULL) { newlist = q; newlist->next = NULL; } if(endlist != NULL) { endlist->next = q; } endlist = q; endlist->next = NULL; } return newlist; } 評論博客:辛靜瑤 吳曉明 焦瑞君 代碼托管

進度總結:上一周學習的感覺還闊以,這一周學習的真的很吃力啊,看那么多行代碼,心理已經產生了抵觸。 學習記錄:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM