⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 11-8到11a.cpp

📁 有关c语言的说课的课件,内容丰富多彩,值得借鉴
💻 CPP
字号:
#include <stdio.h>
#include <malloc.h>
#define NULL 0
  #define LEN sizeof(struct student)
  struct student
  {long num;
      float score;      struct student *next;
     };
     int n;  struct student *creat()
  {struct student *head;
      struct student *p1,*p2;
      n=0;
p1=p2=( struct student*) malloc(LEN);
      scanf("%ld,%f",&p1->num,&p1->score);
      head=NULL;
      while(p1->num!=0)
       {n=n+1;
	  if(n==1)head=p1;
	  else p2->next=p1;
	  p2=p1;
	  p1=(struct student*)malloc(LEN);
	  scanf("%ld,%f",&p1->num,&p1->score);
	 }
      p2->next=NULL;
      return(head);
}

void print(struct student *head)

         {struct student *p;
          printf("\nNow,These %d records are:\n",n);          p=head;
          if(head!=NULL)
               do
                 {printf("%ld %5.1f\n",p->num,p->score);
                   p=p->next;
                  }while(p!=NULL);
         }


struct student *del(struct student *head,long num)
	 {struct student *p1,*p2;
	   if (head==NULL){printf("\nlist null!\n");goto end;}
	   p1=head;
	   while(num!=p1->num && p1->next!=NULL)

{p2=p1;p1=p1->next;}
if(num==p1->num)
	  {if(p1==head)head=p1->next;
	   else p2->next=p1->next;
	   printf("delete:%ld\n",num);
	   n=n-1;
          }
        else printf("%ld not been found!\n",num);    
end:	
return(head);
}

struct student *insert(struct student *head, struct student *stud)
{struct student *p0,*p1,*p2;
p1=head;
p0=stud;               
        if(head==NULL)  
{head=p0; p0->next=NULL;}  
        else
{while((p0->num>p1->num) && (p1->next!=NULL))
{p2=p1;     
               p1=p1->next;}          
       if(p0->num<=p1->num)
 {if(head==p1) head=p0; 
                else p2->next=p0;      
                p0->next=p1;}
 else
{p1->next=p0; p0->next=NULL;}}
           n=n+1;                 
           return(head);
         }

main()
  {struct student *head,stu;
      long del_num;
      printf("input records:\n");
      head=creat();
      print(head);                     
      printf("\ninput the deleted number:");
      scanf("%ld",&del_num); 
      head=del(head,del_num); 
      print(head);                
      printf("\ninput the inserted record:");     
      scanf("%ld,%f",&stu.num,&stu.score);
      head=insert(head,&stu); 
      print(head);

 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -