首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第三天:C基础习题

4.//题目:学生数据

//咕咕想要录入学生的数据去保存,但是咕咕不会用Excel,因此需要写一个代码去实践!

// 输入学生数据,遇到0停止

//答案:输出学生数据

//主要内容:本题的需求不难,主要是理解动态结构链表的使用

代码实现:

#include

#include

#define LEN sizeof(struct Student)

typedef struct Student

{

 long num;

 float score;

 struct Student *next;

}student;

int n;

student *creat()

{ student *head,*p1,*p2;  n=0;

 p1=p2=( student*) malloc(LEN);

 scanf("%ld,%f",&p1->num,&p1->score);//如果我们在C语言中定义了一个结构体

 //然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”.

 head=NULL;

 while(p1->num!=0)

 {

    n=n+1;

if(n==1) head=p1;

else  p2->next=p1;//取出p2所指向的结构体中包含的数据项next赋值给p1

p2=p1; //指针变量p中存放的某个变量的地址赋值给q,赋值的内容是指针,也是地址

//*p=*q将p指向的变量赋值给q指向的变量

p1=(student*)malloc(LEN);

scanf("%ld,%f",&p1->num,&p1->score);

}

 p2->next=NULL; 

 return(head);

}

void print(student *p)

{

 printf("\nThese %d records are:\n",n); 

 if(p!=NULL)

    do

    { printf("%ld %5.1f\n",p->num,p->score);

       p=p->next;

    }while(p!=NULL);

  }

int main()

{ student *head;

 head=creat();

print(head);

 return 0;

}

今天这道题属实有点长,但是对于理解指针,动态链表等的相关知识很有用。

不过想说的的是,不理解的同学也不要慌,这部分在竞赛内容中是很少用到的,只是作为学习部分给大家了解下。

因为有很多同学在后台说让我讲解下指针,不懂指针,其实小哥个人觉得指针的作用不是很大,几乎不怎么用,不过还是给大家看看吧!

今天就到这里吧,好好理解一下!拜拜!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200907A02X6H00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券