zoukankan      html  css  js  c++  java
  • 第九章实验报告

    C语言实验报告

    第九章 构造数据类型实验

    姓名:王煜    学号:113120180156     班级:18物联  

    时间:2019.6.28      地点:514教室


    9.3.1 结构体变量的应用

    问题描述:试利用结构体类型描述年、月、日,输入一个日期,统计该日期是本年度第几天。

     实验代码

    main()
    {
        struct date
        {
            int year;
            int month;
            int day;
        }a;
        int i,days;
        printf("输入年月日: ");
        scanf("%d%d%d",&a.year,&a.month,&a.day);
        for(i=1;i<a.month;i++)
        {
            if(i==1||i==3||i==5||i==7||i==8||i==10)
                days=days+31;
            else if(i==4||i==6||i==9||i==11)
                days=days+30;
            else if((a.year%100!=0)&&(a.year%4==0))
                days=days+29;
                else days=days+28;
        }
        days=days+a.day-1;
        printf("%d年%d月%d日是该年的第%d天",a.year,a.month,a.day,days);
    }

    实验结果

    9.3.2

    结构体数组的应用

    实验代码

    #include"stdio.h"
    #include<string.h>
    struct person
    { char name[20];
      int count;
    }a[6]={"zhang",0,"li",0,"wang",0,"zhao",0,"liu",0,"zhu",0};
     main()
    { int i,j;char abc[20];
        for(i=1;i<=10;i++)
        {
            printf("输入候选人名字:");
            scanf("%s",&abc[i]);
           for(j=0;j<6;j++)
           if(strcmp(a[j].name,&abc[i])==0)
            a[j].count+=1; 
        }
        for(j=0;j<6;j++)
        printf("%s:%d
    ",a[j].name,a[j].count); 
    }

    实验结果

    9.3.3公用体的应用

    实验代码

    #include"stdio.h"
    #include"stdlib.h"
    struct
    {
        int number;
        char name[10];
        char job;
        union
        { int classes;
            char position[10];
        }category;
    }person[2];
        main()
        { int i;
        for(i=0;i<2;i++)
        {   
            scanf("%s%d%s",&person[i].name,&person[i].number,&person[i].job);
            if(person[i].job=='s')
            scanf("%d",&person[i].category.classes);
            else if(person[i].job=='t')
            scanf("%s",&person[i].category.position);
            else
            { printf("input error!");
            abort();
            }
         } 
         printf("
    ");
         printf("编号  姓名  职业  班级/职务
    ");
         for(i=0;i<2;i++)
         if(person[i].job=='s')
         printf("%d	%s	%c	%d
    ",person[i].number,person[i].name,person[i].job,person[i].category.classes);
         else
         printf("%d	%s	%c	%s
    ",person[i].number,person[i].name,person[i].job,person[i].category.position)

    实验结果

     9.3.4结构体指针的应用

    实验代码

    #include<stdio.h>
    #define N 10
    struct child
    {
        int no;
        int next;    
     };
     struct child link[N];
     main()
     {
         int i,n,m,s,count,h;
         printf("输入围圈人数,出圈报数,开始报数位置:");
        scanf("%d%d%d",&n,&m,&s);
        for(i=1;i<=n;i++)
        {
            if(i==n)
            link[i].next=1;
            else
            link[i].next=i+1;
            link[i].no=i;
          }  
          count=0;
          if(s==1)h=n;else h=s-1;
          printf("出圈顺序为:");
          while(m<n-1)
          {
              i=0;
              while(i!=m)
              {
                  h=link[h].next;
                  if(link[h].no)
                      i++;
              }
              printf("%d,",link[h].no);
              link[h].no=0;
              count++;
           } 
           for(i=1;i<=n;i++)
           if(link[i].no!=0)
           printf("%d",n);
      }

    实验结果

  • 相关阅读:
    顺序查找
    折半查找
    KMP
    php长时间的脚本,报502
    AcWing 27. 数值的整数次方
    acwing 25. 剪绳子
    Best Cow Line <挑战程序设计竞赛> 习题 poj 3617
    acwing 23. 矩阵中的路径
    AcWing 34. 链表中环的入口结点
    AcWing 33. 链表中倒数第k个节点
  • 原文地址:https://www.cnblogs.com/17370137371WY/p/11110642.html
Copyright © 2011-2022 走看看