問題描述:
定義乙個學生資訊結構,包括姓名、學號和總成績。從鍵盤上輸入若干學生的資訊,學生個數未知,當輸入的姓名為「#####」時表示輸入結束;學生的總成績為整數,範圍是0—1600,不會出現非法輸入。你的任務是分別統計出1400分以上同學的具體資訊與人數。學生的姓名中只能包含大小寫字母與空格字元,不會超過20個字元;學生的學號是個長度不會超過20的字串,只包含數字字元。
要求:
在本題中,你要建立乙個單鏈表,並使用該鍊錶儲存所有學生的資訊。假設最初建立的鍊錶名為lista,你要將鍊錶lista中成成績在1400分以上(含1400分)的節點從lista中刪去,並把這些節點插入到新鍊錶listb中,最後輸出鍊錶listb中的資訊。注意這裡不要釋放lista中的節點,然後新建節點插入到listb中,應該只修改鍊錶節點的指標域。本題所有定義的函式,函式引數與返回值均可根據需要自行定義。程式結束後要釋放所有節點佔據的空間。
輸入與輸出要求:輸入若干個學生的資訊,輸入順序為姓名、學號、總成績,學生個數未知,當學生姓名為「#####」代表輸入結束。輸出最終的統計資訊,具體格式見樣例。注意這裡的單詞students等一律使用複數形式。
程式執行效果:
please input the information of the students:
小王同學
liu mengmeng
albert einstein
bill gates
輸出
there are 2 students' score higher than 1400.they are:
name:小王同學 id:0821131699999 score:1490
name:liu mengmeng id:0821131666666 score:1495
這題是計導作業,就是要我們寫單鏈表,平時沒寫過這樣的,寫這個程式也調了半天-_-||
2016.3.24:真是打臉啊,cc同學幫我發現bug了,怎麼辦,發了好幾份有bug的**給同學們!!
/*明天就要去歡樂谷啦!雖然有好多好多沒完成的事情,可是總要放鬆一下啊,忘記所有煩惱地玩玩吧~
*/#include
#include
//字串最多字元個數
#define n 25typedef
struct
student
stu;
//p為當前節點,heada為lista的頭節點,headb為listb的頭節點
//lista、listb指向尾節點
stu *lista,*listb,*p,*heada,*headb;
//讀一行字串
void read(char *s)
intsolve()
/*因為刪除單鏈表的元素,是刪除當前節點的下乙個,即p->next
所以對第乙個不能插入listb的元素,即現在的heada,開始處理nx即它的下乙個(看看要不要刪除)
*/if(heada==null)return
ans;
p=heada;
stu *nx=p->next;
while(nx!=null)
p=nx;nx=nx->next;
}//listb最後乙個的next設定為null(我最後找到的bug,打臉了,又找到bug↓)
//當listb不為空時,才有listb->next(我最後找到的bug)
if(listb!=null)listb->next=null;
return
ans;
}int
main()
p=heada;
while(p!=null)
break
; }
//分配空間給當前節點
p=malloc(sizeof
(stu));
if(p!=null)
}return0;
}
計導作業 鍊錶 差集與交集
問題描述 已知有兩個遞增的正整數序列a和b,序列中元素個數未知,同一序列中不會有重複元素出現,有可能某個序列為空。你的任務是求這兩個序列的差集a b與交集a b。a b就是僅由在a中出現而不在b中出現的元素所構成的集合,設為c1 a b就是既在a中出現也在b中出現的元素所構成的集合,設為c2。要求 ...
PTA 作業7 統計成績2
7 3 統計成績2 10分 給定n個學生的基本資訊,包括學號 由12個數字組成的字串 姓名 長度小於20的不包含空白字元的非空字串 高等數學成績 c語言程式設計成績,成績均為 0,100 區間內的整數,要求統計高等數學成績及格的人數,並按輸入順序給出高等數學及格學生名單。輸入格式 輸入在一行中給出正...
寒假集訓作業(2) 鍊錶
這真是令人頭疼!include include includeusing namespace std struct node struct node creat2 int n return head int main include include includeusing namespace st...