---------第五周--------总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了---------第五周--------总结相关的知识,希望对你有一定的参考价值。

#include "stdafx.h"
#include <stdio.h>
#include <stdio.h>
#include <malloc.h>
/***********单个结构体练习*************/
//1. 定义一个日期结构体,包含年与月成员
struct Date 
{
    int year,month;
};
/**********结构体嵌套练习**************/
//2.定义一个学生结构体,包含学号与出生日期
struct student{
    int num;
    struct Date birth;

};
/**********结构体中嵌套结构指针练习**************/
//1.用typedef语句定义一个学生结构体,包含学号与出生日期
typedef struct stu2 
{
    int num;
    struct Date *birth;    //(要求出生日期为日期结构体指针变量)        
}s;



void main()
{/*********************************************/
    printf("** *** 第一题 \n");
    struct Date date,*pdate;//2. 在main主函数内设置日期结构体变量与指针变量
    //3. 对结构变量中的成员赋值并输出
    date.year=1998;date.month=6;
    printf("变量输出 %d年%d月\n",date.year,date.month);

    pdate=&date;//指针初始化
    pdate->year=1999;pdate->month=12;
    printf("指针变量输出 %d年%d月\n",pdate->year,pdate->month);

/*********************************************/


    

/*********************************************/
    printf("** *** 第二题 \n");
    struct student str,*ps; //2. 在main主函数内设置学生结构体变量与指针变量
     //3. 对结构变量中的成员赋值并输出
    str.num=12346; str.birth.year=1846; str.birth.month=3;
    printf("变量输出 %d学号%d年%d月\n",str.num,str.birth.year,str.birth.month);
    ps=&str;
    ps->num=12345;ps->birth.year=1845;ps->birth.month=6;
    printf("指针变量输出 %d学号%d年%d月\n",    ps->num,ps->birth.year,ps->birth.month);
/*********************************************/


    
/*********************************************/
//3. 对结构变量中的成员赋值并输出
    printf("** *** 第三题 \n");
    s stu,*s1;    //2. 在main主函数内设置学生结构体变量与指针变量
    stu.birth=(struct Date *)malloc(sizeof(struct Date));
    stu.num=456;stu.birth->year=2013;stu.birth->month=4;
    printf("变量输出 %d学号%d年%d月\n",stu.num, stu.birth->year,stu.birth->month);

    s1=&stu;
    s1->num=789;s1->birth->year=2011;s1->birth->month=2;
    printf("指针变量输出 %d学号%d年%d月\n",    s1->num=789,s1->birth->year,s1->birth->month);

    /*********************************************/

}

在这周里 我了解到指针是要先初始化,不然就会出错。然后呢,指针结构体变量要用-> ,而结构体要用.  。以前一直没有分清楚,很感谢老师帮我们再一次的复习,让我温故而新。还有因为stu.birth=(struct Date *)malloc(sizeof(struct Date))实现不了,上网搜索了下要增加头文件#include <malloc.h>就运行出来了,不过下一道题又不需要增加头文件了,不懂(⊙_⊙)?

#include "stdafx.h"
#include"stdio.h"
#include"stdlib.h"
/***********循环双链表练习************/
//1. 按照课本中双链表的定义,定义其节点结构体类型(数据域与两个指针域).
typedef int Datatype;
typedef struct Table
{
    Datatype data;
    Table *prior;
    Table *next;
}Table,*LinkList;


int main(int argc, char* argv[])
{
    printf("** *** 循环双链表练习");
    //2.在main函数中设置带头节点双链表指针 
    LinkList L2,S2;
    L2=(LinkList)malloc(sizeof(Table));//指针初始化
    L2->next=L2;
    L2->prior=L2;

    //    3 在此双链表的链表头分别添两个数据。(参考双链表课件的15页)
/*    //(1)
    S2=(LinkList)malloc(sizeof(Table));
    S2->data=1997;//设置节点数据
    S2->prior=L2;//在链表头插入
    L2->next=S2; 
    S2->next=L2;
    //(2)
       S2=(LinkList)malloc(sizeof(Table));
    S2->data=1998;
    S2->prior=L2;
    L2->next=S2; 
    S2->next=L2;*/
    //(1)
    S2=(LinkList)malloc(sizeof(Table));
    S2->data=1997;//设置节点数据
    S2->prior=L2;//在链表头插入
    S2->next=L2->next;
    L2->next->prior=S2;
    L2->next=S2;
    
    //(2)
       S2=(LinkList)malloc(sizeof(Table));
    S2->data=1998;
    S2->prior=L2;//在链表头插入
    S2->next=L2->next;
    L2->next->prior=S2;
    L2->next=S2;
    
printf("\n");
//4正向输出此双链表数据
    S2=L2->next;
    printf("正向输出 第一节点数据=%d",S2->data);
    S2=S2->next;
    printf(" 第二节点数据=%d\n",S2->data);
//反向输出此双链表数据
    S2=L2->prior;
    printf("反向输出 第一节点数据=%d",S2->data);
    S2=S2->prior;
    printf("第二节点数据=%d\n",S2->data);

    return 0;
}

 

以上是关于---------第五周--------总结的主要内容,如果未能解决你的问题,请参考以下文章

第五周学习进度总结

第五周学习总结

20165204 Java第五周学习总结

第五周学习总结

第五周总结

第五周学习总结