程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> 。。。。。。c語言。。。。。

。。。。。。c語言。。。。。

編輯:C語言問答

。。。。。。c語言。。。。。

30

.建立一個學生信息鏈表,每個結點包括:學號、姓名、成績。實現鏈表的建立、顯示和查詢。查詢是指輸入一個學號,如果鏈表中存在該學號的的結點,則顯示此結點的數據。                                                 要求

l  在程序中定義了三個函數:

void init(); //初始化鏈表

void create();  //創建學生成績信息鏈表

l  void disp();       數void search(int number),其中,參數是學生的學號。如果鏈表中存在該學號的的結點,則顯示此結點的數據,否則輸出沒有該學號的結點。

l  定義一個刪除函數void del(int number),用於刪除指定學號的結點。如果鏈表中存在該學號的的結點,則刪除該結點,否則顯示鏈表中沒有該學號的結點。

最佳回答:


#include <stdio.h>
#include <malloc.h>
#define N 3
typedef struct stu
{
int no;
char name[20];
float score;
}STU;
typedef struct node
{
STU data;
struct node *next;
}NODE;


NODE *head;
void init()
{
head = NULL;
}
void create()
{
int i;
STU s;
NODE *p,*q;
printf("輸入第1個學生信息:");
scanf("%d%s%f",&s.no,s.name,&s.score);


if(head == NULL)
{
head = (NODE*)malloc(sizeof(NODE));
head->data = s;
head->next = NULL;
}
p = head;
for(i=1; i<N; i++)
{
printf("輸入第%d個學生信息:",i+1);
scanf("%d%s%f",&s.no,s.name,&s.score);
q = (NODE*)malloc(sizeof(NODE));
q->data = s;
q->next = NULL;
p->next = q;
p = q;
}
}
void disp()
{
NODE*p = head;
printf("學號\t姓名\t成績\n");
while(p!=NULL)
{
printf("%d\t%s\t%.2f\n",p->data.no,p->data.name,p->data.score);
p = p->next;
}
}


void search(int number)
{
NODE*p=head;
while(p!=NULL)
{
if(p->data.no == number)
{
printf("%d\t%s\t%.2f\n",p->data.no,p->data.name,p->data.score);
break;
}
p = p->next;
}
if(p == NULL)
{
printf("沒有該學號的學生!\n");
}
}


void del(int number)
{
NODE*p,*q,*t;
p=head;
q=head;
while(p!=NULL)
{
if(p->data.no == number)
{
if(p == head)
{
t = head;
head = head->next;
free(t);
break;
}
else
{
t = p;
q->next = p->next;
free(t);
break;
}
}
q = p;
p = p->next;
}
if(p==NULL)
{
printf("沒有該學號的學生!\n");
}


}
void main()
{
int number;
init();
create();
disp();
printf("輸入要查找的學生的學號:");
scanf("%d",&number);
search(number);
printf("輸入要刪除的學生的學號:");
scanf("%d",&number);
del(number);
disp();
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved