概述
结构体数组和结构体链表基本操作
结构体数组
//结构体数组
#include<stdio.h>
#include<stdlib.h>
//结构体
struct Student{
int num;
char name[10];
int score;
};
int main()
{
struct Student student[10];//结构体数组
int n;
scanf("%dn",&n);
for(int i=0;i<n;i++)
{
scanf("%d %s %d",&student[i].num,&student[i].name,&student[i].score);//不要加n
}
for(int i=0;i<n;i++)
{
printf("%d %s %dn",student[i].num,student[i].name,student[i].score);//不要n多
}
}
结构体链表
有两种:
//结构体链表1
#include<stdio.h>
#include<stdlib.h>
struct link{
int num;
char name[10];
int score;
struct link *next;
};
int main()
{
int n;
scanf("%dn",&n);
struct link *head;//头指针
head=(struct link*)malloc(sizeof(struct link));//申请空间 后面括号不要*
head->next=NULL;//初始化
//输入
for(int i=0;i<n;i++)//n组数据
{
struct link *p;
p=(struct link*)malloc(sizeof(struct link));//申请空间 后面括号不要*
scanf("%d %s %d",&p->num,&p->name,&p->score);
p->next=head->next;
head->next=p;
}
//输出(倒过来的)
struct link *pmove;
pmove=head->next;
for(int i=0;i<n;i++)
{
printf("%d %s %dn",pmove->num,pmove->name,pmove->score);
pmove=pmove->next;//指针一直往后移
}
}
//结构体链表2
#include<stdio.h>
#include<stdlib.h>//结构体
struct Student{
int num;
char name[10];
int score;
};
struct link{
struct Student data;
struct link *next;
};
int main()
{
int n;
scanf("%dn",&n);
struct link *head;//头指针
head=(struct link*)malloc(sizeof(struct link));//申请空间 后面括号不要*
head->next=NULL;//初始化
//输入
for(int i=0;i<n;i++)//n组数据
{
struct link *p;
p=(struct link*)malloc(sizeof(struct link));//申请空间 后面括号不要*
scanf("%d %s %d",&p->data.num,&p->data.name,&p->data.score);
p->next=head->next;
head->next=p;
}
//输出(倒过来的)
struct link *pmove;
pmove=head->next;
for(int i=0;i<n;i++)
{
printf("%d %s %dn",pmove->data.num,pmove->data.name,pmove->data.score);
pmove=pmove->next;//指针一直往后移
}
}
最后
以上就是生动紫菜为你收集整理的结构体数组和结构体链表的全部内容,希望文章能够帮你解决结构体数组和结构体链表所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复