美文网首页
022. C语言基础

022. C语言基础

作者: PYGY | 来源:发表于2017-06-21 19:56 被阅读0次
    //   211.c
    #include<stdio.h>
    struct node
    {
       int num;
       struct node *next;
    };
    void main()
    {
       struct node *p;
    }
    
    //   212.c
    #include<stdio.h>
    struct node
    {
       char *name;
       char sex;
       int score;
    };
    void main()
    {
       struct node x[5]=
       {"001",'M',98,
        "002",'W',89,
        "003",'M',97,
        "004",'M',79,
        "005",'W',69},t;
       int i,j;
       for(i=0;i<4;i++)
         for(j=i+1;j<5;j++)
           if(x[i].score<x[j].score)
           {
              t=x[i];x[i]=x[j];x[j]=t;
           }
        for(i=0;i<5;i++)
          printf("%s:%c,%d\n",x[i].name,x[i].sex,x[i].score);
        getch();
    
    }
    
    //   213.c
    #include<stdio.h>
    struct node
    {
       char a[20];
       int num;
    
    };
    void main()
    {
       struct node x[5]={"x001",90,
                         "x002",80,
                         "x003",97,
                         "x004",99,
                         "x005",87},*p,*q,t;
       for(p=x;p<x+4;p++)
         for(q=p+1;q<x+5;q++)
         {
            if((*p).num>(*q).num)
            {
                t=*p;*p=*q;*q=t;
            }
         }
       for(p=x;p<x+5;p++)
         printf("%s:%d\n",(*p).a,(*p).num);
       getch();
    
    }
    
    //   214.c
    #include<stdio.h>
    struct node
    {
       char a[20];
       int num;
    
    };
    void main()
    {
       struct node x[5]={"x001",90,
                         "x002",80,
                         "x003",97,
                         "x004",99,
                         "x005",87},*p,*q,t;
       for(p=x;p<x+4;p++)
         for(q=p+1;q<x+5;q++)
         {
            if(p->num>q->num)  //(*p).num等价于p->num
            {
                t=*p;*p=*q;*q=t;
            }
         }
       for(p=x;p<x+5;p++)
         printf("%s:%d\n",p->a,p->num);
       getch();
    
    }
    
    //    215.c
    #include<stdio.h>
    struct node
    {
       char a[20];
       int num;
    };
    void fun(struct node x[],char name[],int n)
    {       //结构体数据类型变量作为函数的参数
        int i;
        for(i=0;i<n;i++)
          if(strcmp(x[i].a,name)==0){x[i].num++;break;}
    }
    void main()
    {
       struct node x[3]={"x001",0,
                         "x002",0,
                         "x003",0};
       int i;
       char name[20];
       for(i=0;i<5;i++)
       {
           scanf("%s",name);
           fun(x,name,3);
    
       }
       for(i=0;i<3;i++)
         printf("%s:%d\n",x[i].a,x[i].num);
       getch();
    }
    
    //   216.c
    #include<stdio.h>
    struct node
    {
       int num; //普通成员变量
       struct node *next; //指针成员变量
    };
    void main()
    {
       struct node a={1},b={2},c={3},*p;
       a.next=&b;
       b.next=&c;
       c.next=&a;
       p=&a;
       while(p!=NULL)
       {
          printf("%3d",p->num);
          p=p->next;
       }
       getch();
    }
    
    //    217.c
    #include<stdio.h>
    //静态开辟10个内存单元,创建链表.
    struct node
    {
       int num;
       struct node *next;
    };
    void main()
    {
       struct node a[10],*p;
       int i;
       for(i=0;i<10;i++)
       {
          a[i].num=i+1;
          if(i<9)a[i].next=&a[i+1];
          else a[i].next=NULL;
       }
       p=a;
       while(p!=NULL)
       {
          printf("%3d",p->num);
          p=p->next;
       }
       getch();
    }
    
    //    218.c
    #include<stdio.h>
    //动态开辟含有5个结点的链表
    #include<malloc.h>
    struct node
    {
       int num;
       struct node *next;
    };
    void main()
    {
       struct node *p1,*p2,*head;
       int i=0;
       head=p1=p2=(struct node *)malloc(sizeof(struct node));
       scanf("%d",&head->num);
       i++;
       while(i<5)
       {
          p2=p1;
          p1=(struct node *)malloc(sizeof(struct node));
          scanf("%d",&p1->num);
          p2->next=p1;
          i++;
       }
       p1->next=NULL;
       while(head!=NULL)
       {
          printf("%3d",head->num);
          head=head->next;
       }
       getch();
    }
    
    //    219.c
    #include<stdio.h>
    #include<malloc.h>
    struct node
    {
       int num;
       struct node *next;
    };
    void putfun(struct node *head)
    {
       while(head!=NULL)
       {
         printf("%3d",head->num);
         head=head->next;
       }
    }
    struct node *fun(int n)
    {
       struct node *head,*p1,*p2;
       int i=0;
       if(n==0)return NULL;
       head=p1=p2=(struct node *)malloc(sizeof(struct node));
       scanf("%d",&head->num);
       i++;
       while(i<n)
       {
          p2=p1;
          p1=(struct node *)malloc(sizeof(struct node));
          scanf("%d",&p1->num);
          p2->next=p1;
          i++;
       }
       p1->next=NULL;
       return head;
    }
    void main()
    {
       struct node *head;
       head=fun(5);
       putfun(head);
       getch();
    }
    
    //   220.c
    #include<stdio.h>
    #include<malloc.h>
    struct node
    {
       int num;
       struct node *next;
    };
    void putfun(struct node *head)
    {
       while(head!=NULL)
       {
          printf("%3d",head->num);
          head=head->next;
       }
    }
    struct node *fun(int n)
    {
        struct node *m,*p;
        if(n==0)return NULL;
        m=NULL;
        while(n)
        {
           p=(struct node *)malloc(sizeof(struct node));
           p->num=n;
           p->next=m;
           m=p;
           n--;
        }
        return p;
    }
    struct node *fxfun(struct node *head)
    {
        struct node *p1,*p2,*p3,*m;
        if(head->next==NULL)return head;
        m=NULL;
        p2=head;
        p1=p2->next;
        p3=p1->next;
        while(p3!=NULL)
        {
          p2->next=m;
          p1->next=p2;
          m=p2;
          p2=p1;
          p1=p3;
          p3=p3->next;
        }
        p2->next=m;
        p1->next=p2;
        return p1;
    }
    struct node *delfun(struct node *p,int n)
    {
        struct node *head,*m;
        head=m=p;
        if(p->num==n){head=head->next;free(p);return head;}
        while(p!=NULL&&p->num!=n)
        {
           m=p;
           p=p->next;
        }
        if(p!=NULL)m->next=p->next;
        free(p);
        return head;
    }
    void main()
    {
       struct node *head;
       int n;
       scanf("%d",&n);
       head=fun(n);
       putfun(head);
       head=fxfun(head);
       printf("\nfanxu after's xiao guo is:\n");
       putfun(head);
       printf("\nplease input a's delnum:");
       scanf("%d",&n);
       head=delfun(head,n);
       printf("\ndelete after's xiao guo is:\n");
       putfun(head);
       getch();
    }
    

    相关文章

      网友评论

          本文标题:022. C语言基础

          本文链接:https://www.haomeiwen.com/subject/tgitcxtx.html