日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2-2 学生成绩链表处理 (20 分)

發布時間:2023/12/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2-2 学生成绩链表处理 (20 分) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2-2?學生成績鏈表處理?(20?分)

本題要求實現兩個函數,一個將輸入的學生成績組織成單向鏈表;另一個將成績低于某分數線的學生結點從鏈表中刪除。

函數接口定義:

struct stud_node *createlist(); struct stud_node *deletelist( struct stud_node *head, int min_score );

函數createlist利用scanf從輸入中獲取學生的信息,將其組織成單向鏈表,并返回鏈表頭指針。鏈表節點結構定義如下:

struct stud_node {int num; /*學號*/char name[20]; /*姓名*/int score; /*成績*/struct stud_node *next; /*指向下個結點的指針*/ };

輸入為若干個學生的信息(學號、姓名、成績),當輸入學號為0時結束。

函數deletelist從以head為頭指針的鏈表中刪除成績低于min_score的學生,并返回結果鏈表的頭指針。

裁判測試程序樣例:

#include <stdio.h> #include <stdlib.h>struct stud_node {int num;char name[20];int score;struct stud_node *next; };struct stud_node *createlist(); struct stud_node *deletelist( struct stud_node *head, int min_score );int main() {int min_score;struct stud_node *p, *head = NULL;head = createlist();scanf("%d", &min_score);head = deletelist(head, min_score);for ( p = head; p != NULL; p = p->next )printf("%d %s %d\n", p->num, p->name, p->score);return 0; }/* 你的代碼將被嵌在這里 */

輸入樣例:

1 zhang 78 2 wang 80 3 li 75 4 zhao 85 0 80

輸出樣例:

2 wang 80 4 zhao 85

一個存一個刪

鏈表操作

struct stud_node *createlist(){int number,score;char name[100];struct stud_node *p=NULL,*head=NULL,*tail=NULL;//當前節點 頭結點 尾部節點scanf("%d",&number);while(number!=0){ scanf("%s %d",name,&score);//輸入信息p=(struct stud_node *)malloc(sizeof(struct stud_node));//申請內存p->num=number;p->score=score;strcpy(p->name,name);p->next=NULL;//置空if(NULL==head)head=p;//處理第一個特殊情況else tail->next=p;//存表tail=p;//尾結點后移scanf("%d",&number);}return head;//返回頭結點 } struct stud_node *deletelist( struct stud_node *head, int min_score ) { struct stud_node *ptr=NULL,*ptr1=NULL,*ptr2=NULL;if(head==NULL) return NULL;for(ptr=head;ptr!=NULL;ptr=ptr->next){if(ptr->score<min_score){if(ptr==head)head=head->next;else ptr1->next=ptr->next;free(ptr);//刪}else ptr1=ptr;}return head; }

?

總結

以上是生活随笔為你收集整理的2-2 学生成绩链表处理 (20 分)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。