• 当前位置:首页>>C语言>>C语言编程实例>>经典C程序100例==71--80
  • 经典C程序100例==71--80
  • 【程序71】
    题目:编写input()和output()函数输入,输出5个学生的数据记录。
    1.程序分析:
    2.程序源代码:
    #define N 5
    struct student
    { char num[6];
      char name[8];
      int score[4];
    } stu[N];
    input(stu)
    struct student stu[];
    { int i,j;
      for(i=0;i<N;i++)
      { printf("\n please input %d of %d\n",i+1,N);
       printf("num: ");
       scanf("%s",stu[i].num);
       printf("name: ");
       scanf("%s",stu[i].name);
        for(j=0;j<3;j++)
        { printf("score %d.",j+1);
         scanf("%d",&stu[i].score[j]);
        }
       printf("\n");
      }
    }
    print(stu)
    struct student stu[];
    { int i,j;
    printf("\nNo. Name Sco1 Sco2 Sco3\n");
    for(i=0;i<N;i++)
    { printf("%-6s%-10s",stu[i].num,stu[i].name);
      for(j=0;j<3;j++)
       printf("%-8d",stu[i].score[j]);
      printf("\n");
    }
    }
    main()
    {
      input();
      print();
    }
    ==============================================================
    【程序72】
    题目:创建一个链表。
    1.程序分析:           
    2.程序源代码:
    /*creat a list*/
    #include "stdlib.h"
    #include "stdio.h"
    struct list
    { int data;
    struct list *next;
    };
    typedef struct list node;
    typedef node *link;
    void main()
    { link ptr,head;
    int num,i;
    ptr=(link)malloc(sizeof(node));
    ptr=head;
    printf("please input 5 numbers==>\n");
    for(i=0;i<=4;i++)
    {
      scanf("%d",&num);
      ptr->data=num;
      ptr->next=(link)malloc(sizeof(node));
      if(i==4) ptr->next=NULL;
      else ptr=ptr->next;
    }
    ptr=head;
    while(ptr!=NULL)
    { printf("The value is ==>%d\n",ptr->data);
      ptr=ptr->next;
    }
    }
    ==============================================================
    【程序73】
    题目:反向输出一个链表。   
    1.程序分析:
    2.程序源代码:
    /*reverse output a list*/
    #include "stdlib.h"
    #include "stdio.h"
    struct list
    { int data;
      struct list *next;
    };
    typedef struct list node;
    typedef node *link;
    void main()
    { link ptr,head,tail; 
      int num,i;
      tail=(link)malloc(sizeof(node));
      tail->next=NULL;
      ptr=tail;
      printf("\nplease input 5 data==>\n");
      for(i=0;i<=4;i++)
      {
       scanf("%d",&num);
       ptr->data=num;
       head=(link)malloc(sizeof(node));
       head->next=ptr;
       ptr=head;
      }
    ptr=ptr->next;
    while(ptr!=NULL)
    { printf("The value is ==>%d\n",ptr->data);
      ptr=ptr->next;
    }}
    ==============================================================
    【程序74】
    题目:连接两个链表。
    1.程序分析:
    2.程序源代码:
    #include "stdlib.h"
    #include "stdio.h"
    struct list
    { int data;
    struct list *next;
    };
    typedef struct list node;
    typedef node *link;
    link delete_node(link pointer,link tmp)
    {if (tmp==NULL) /*delete first node*/
      return pointer->next;
    else
    { if(tmp->next->next==NULL)/*delete last node*/
       tmp->next=NULL;
      else /*delete the other node*/
       tmp->next=tmp->next->next

    [1] [2] [3] 下一页  

  • 上一篇:经典C程序100例==61--70
    下一篇:经典C程序100例==81--90