20130828C语言编程实践课第八天
来源:互联网 发布:源码安装rrdtool 编辑:程序博客网 时间:2024/05/16 05:07
/******************************************************************第一题****************************************************************/
/*编写程序,先动态开辟结构体空间,然后释放它*/
#include<stdio.h>
#include<stdlib.h>
struct STUDENT{
char name[20];
int age;
int chinese,math;
struct STUDENT *next;
};
main()
{
struct STUDENT *s;
s=(struct STUDENT*)malloc(sizeof(struct STUDENT));
gets(s->name);
scanf("%d%d%d",&s->age,&s->chinese,&s->math);
puts(s->name);
printf("%d\n%d\n%d\n",s->age,s->chinese,s->math);
free(s);
}
/******************************************************************第一题****************************************************************/
/******************************************************************第二题****************************************************************/
/*****************************************链表的创建***************************************************/
/*#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct STUDENT{
char name[20];
int age;
int chinese,math;
struct STUDENT *next;
};//注意,以后所有的结构体操作都使用都使用这个定义
typedef struct STUDENT STU;
STU *creat_list();
void print_list(STU *head);
main()
{
STU *head;
head=creat_list();
print_list(head);
}
STU *creat_list()//定义创建链表函数
{
int i=0;
STU *head,*p,*q;
head=(STU *)malloc(sizeof(STU));
head->next=NULL;
q=head;
while(i<3)
{
p=(STU *)malloc(sizeof(STU));
printf("input name:");
gets(p->name);
printf("input age chinese math:");
scanf("%d%d%d",&(p->age),&(p->chinese),&(p->math));
getchar();//滤掉scanf未处理的回车符
p->next=NULL;
q->next=p;
q=p;
i++;
}
q->next=NULL;
return head;
}
void print_list(STU *head)
{
STU *p;
p=head->next;//(1)
while(p!=NULL)//当链表处理还未结束时
{
puts(p->name);
printf("%d%d%d",p->age ,p->chinese,p->math);//(3)
p=p->next;//(4)
}
}
STU *search(STU *head,char *who)
{
STU *p;
p=head->next;
while(p!=NULL)
{
if(strcmp(p->name,who)==0)//找到
break;
else
p=p->next;
}
return p;//若返回值为NULL,则表示没有找到
}
void mydelete(STU *head,char *who)
{
STU *p,*q;
q=head;
while(p!=NULL)
{
if(strcmp(p->name,who)==0)//找到
break;
else
{
p=p->next;
q=q->next;
}
}
if(p!=NULL)//表示找到了,是经break语句跳出循环的
{
q->next=p->next;
printf("名为%s的同学已被删除。\n",p->name);
free(p);
}
else
printf("没有名为%s的同学!\n");
}
void myinsert(STU *head,STU *newNode)
{
STU *p,*q;
q=head;
if(head==NULL)
head=(STU *)(malloc(sizeof(STU)));
p=head->next;
while(p!=NULL)
{
if(strcmp(p->name,newNode->name)>0)//升序
break;
else
{
p=p->next;
q=q->next;
}
}
q->next=newNode;
newNode->next=p;
}
*/
/******************************************************************第二题****************************************************************/
/**************************************************第三题*******************************************************/
/*typedef struct STUDENT{
char name[20];
int age;
float chinese,math;
struct STUDENT *next;
}STU;
利用上述结构体,编写一个函数用来创建链表,按姓名升序输入若干学生信息;
找到数学成绩为100分的学生,并将该同学的信息结点删除
插入名为“James”的同学的结点*/
/**************************************************第三题*******************************************************/
- 20130828C语言编程实践课第八天
- C语言第八天
- 标准C语言第八天
- 2013-08-19C语言编程实践课第一天
- 2013-08-21C语言编程实践课第三天
- 20130823C语言编程实践课第五天
- 20130827C语言编程实践课第七天
- 20130829C语言编程实践课第九天
- C语言暑期实习 第八天
- ios c语言学习第八天 ---指针
- C语言学习第八天(重要:C的灵魂)
- C第八天
- c/c++第八天
- 黑马程序员--IOS基础第八天(C语言)
- C语言第八天课堂笔记<详细+注释>
- 跟我学C语言(第八天)
- C语言 第十八天
- 20130830C语言编程实践课
- 企业实施精准营销易出现的问题及其解决方案
- 常用的MySQL数据库命令大全
- ICCV 2013的人脸特征点检评测及代码
- iOS开发之Core Data Demo (一)
- 新建maven子模块 出现 Unable to read parent POM
- 20130828C语言编程实践课第八天
- 使用T-sql递归语句注意的地方
- C#异步编程
- 性能测试结果
- hdu 4090 GemAnd Prince (bfs+dfs+模拟)
- android 中的 startActivityForResult
- Hoj 2468 GSM
- MFC与.net比较
- myeclipse8.5 svn插件安装