c语言保留两位小数用户自动删除自己 怎么保留用户链

链表删除有关问题(2) - C语言当前位置:& &&&链表删除有关问题链表删除有关问题(2)&&网友分享于:&&浏览:6次
q = pH//应该是q指向头结点
p = pHead-&pN//p指向q的下一个结点
printf(&输入要删除的元素: &);
scanf(&%d&, &n);
while (p != NULL)
------解决方案--------------------探讨引用:void delete_list(struct Node * pHead){struct Node *p ,*q;q = pH//应该是q指向头结点p = pHead-&pN//p指向q的下一个结点printf(&输入要删除的元素: &);scanf(&%d&, &n);//q=p;…… 共&2&页:
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有查看: 521|回复: 0
C语言在链表中删除结点
/****************************************************************
& & 该程序实现结点的删除。
& & 其中void *del_node(TYM *head,int pos,int len)函数用于删除结
点,head为需要删除结点的链表、pos为结点的位置、len为需要删除
****************************************************************/
#include &stdio.h&
#include &stdlib.h&
typedef struct stu& && && && && && && && && && && && && && &&&//定义TYM类型
& & char name[20];
& & struct stu *
void *del_node(TYM *head,int pos,int len)& &&&//删除结点指针函数
& & TYM *p,*q;
& & if(pos==1)& && && && && && && && && && && && && && && && && &//如果删除的位置是首地址
& && &&&for(i=0;i&i++)& && && && && && && && && && && && &//删除len个结点
& && && && &p =& && && && && && && && && && && && && && &//使p指向head
& && && && &head = head-&& && && && && && && && &&&//使head指向下一个结点
& && && && &free(p);& && && && && && && && && && && && && && && &//释放p指向的结点
& && &&&for(p=head,i=1;i&pos-1;i++)& && && && && &&&//当pos不是首地址时,找到pos的位置
& && && && &p = p-&& && && && && && && && && && && && & //使p指向下一个结点,直到第pos个结点为止
& && &&&for(i=0;i&i++)& && && && && && && && && && && & //删除len个结点
& && && && &q = p-&& && && && && && && && && && && && &//使q指向p的下一个结点
& && && && &p-&next = q-&& && && && && && && && &&&//将q的下一个结点的地址传给p的next
& && && && &free(q);& && && && && && && && && && && && && && &//释放q指向的结点
& && && && && && && && && && && && && && && &//返回首地址
void freeall(TYM *head)& && && && && && && && && & //释放函数
& & TYM *p;
& & for(p=p!=NULL;)& && && && && && && && &&&//释放结点直到所有结点被释放
& && &&&p = head-&& && && && && && && && && && &//使p指向下一个结点
& && &&&free(head);& && && && && && && && && && && && & //释放当前结点
& && &&&head =& && && && && && && && && && && && && &//使head指向下一个结点
& & if(p==NULL)& && && && && && && && && && && && && &//如果全部释放
& && &&&printf(&********* Free Success! *********\n&);
int main()
& & TYM *head,*p,*q;
& & int i,
& & head = p = (TYM *)malloc(sizeof(TYM));& && && &&&//开辟一个新的空间
& & printf(&*********************************\n&);
& & printf(&Please Input :\n&);
& & scanf(&%s%d&,head-&name,&head-&num);& && & //对新空间赋值
& & for(i=0;i&4;i++)& && && && && && && && && && && && && && && && &&&//创建4个空间
& && &&&q = (TYM*)calloc(1,sizeof(TYM));& && && && && &&&//将开辟的空间的首地址赋给q
& && &&&p-&next =& && && && && && && && && && && && && && && && & //将q的值传递给p的next成员
& && &&&p =& && && && && && && && && && && && && && && && && && && &&&//使p指向q
& && &&&scanf(&%s%d&,p-&name,&p-&num);& && && && & //对新空间赋值
& && &&&p-&next = NULL;& && && && && && && && && && && && && && &//使空间的next成员不指向任何方向
& & printf(&************ Output *************\n&);
& & for(p=p!=NULL;p=p-&next)& && && && && && && &//输出链表
& && &&&printf(&%s\t%d\n&,p-&name,p-&num);& && && &&&//输出当前变量的值
& & printf(&DELETE......\n&);
& & printf(&******** Position & Lenth *******\n&);
& & printf(&Position:\t&);
& & scanf(&%d&,&pos);& && && && && && && && && && && && && && & //输入删除结点的地址
& & printf(&Lenth:\t\t&);
& & scanf(&%d&,&i);& && && && && && && && && && && && && && && && &//输入删除结点的个数
& & head = del_node(head,pos,i);
& & printf(&********** Output all ***********\n&);
& & for(p=p!=NULL;p=p-&next)& && && && && && && &//输出经删除后的链表
& && &&&printf(&%s\t%d\n&,p-&name,p-&num);& && && & //输出当前变量的值
& & freeall(head);& && && && && && && && && && && && && && && && & //释放链表
& & return 0;
****************************************调试窗口****************************************
Powered by上传时间:
学生管理系统(3)显示链表信息、删除链表
专辑名称:
专辑创建者:
视频数:14
纯C语言学生信息管理系统,作为C语言初学者学习,提高的不二之选,希望能给大家带去启发.
56官方微信
扫一扫发现精彩跑这来求教 &br&用链表输出输入一个长度为N的字符串
&br& #include&stdio.h&&br& #include&stdlib.h&&br& #include&string.h&&br& struct Num&br& {&br&
struct Num *&br& };&br&&br&&br&&br& int main ()&br& {&br&
int creat(Num *l,char a[],int n);&br&
char S[200];&br&
scanf(&%d&,&n);&br&
scanf(&%s&,S);&br&
Num *head,*p;&br&
head=(Num *)malloc(sizeof(Num));&br&
creat(head,S,n);&br&
while (p-&next!=NULL)&br&
printf(&%c &,p-&num);&br&
return 0;&br& }&br&&br&&br& int creat(Num *l,char a[],int n)&br& { &br&
Num *s;&br&
l=(Num *)malloc(sizeof(Num));&br&
l-&next=NULL;&br&
for (i=0;i&n;i++)&br&
s=(Num *)malloc(sizeof(Num));&br&
s-&num=a[i];&br&
s-&next=l-&&br&
l-&next=s;&br&
return 0;&br& }
跑这来求教 用链表输出输入一个长度为N的字符串
#include&stdio.h& #include&stdlib.h& #include&string.h& struct Num {
struct Num * }; int main () {
int creat(Num *l,char a[],int n);
char S[200];
scanf("%d",&n);
scanf("%s",S);
Num *head,*p;
head=(Num *)malloc(sizeof(Num));
你分配的内存比内容多了好几个,而且变量名取得比较随意,我修改了一份你看看是不是你想要的。#include&stdio.h&
#include&stdlib.h&
#include&string.h&
struct Num
struct Num *
creat(char a[],int n)
return NULL;
Num *header=(Num *)malloc(sizeof(Num));
header-&num=a[0];
header-&next=NULL;
Num *tail=
for (i=1;i&n;i++)
Num * s=(Num *)malloc(sizeof(Num));
s-&num=a[i];
s-&next=NULL;
tail-&next=s;
int main ()
creat(char a[],int n);
char S[200];
scanf("%d",&n);
scanf("%s",S);
Num *head=creat(S,n);
while (head!=NULL)
printf("%c ",head-&num);
head=head-&
虽然从来没写过c。。然而你做完(Num *)malloc(sizeof(Num))这一步之后,应该初始化一下啊。。此刻的next并不是NULL啊
虽然从来没写过c。。然而你做完(Num *)malloc(sizeof(Num))这一步之后,应该初始化一下啊。。此刻的next并不是NULL啊
已有帐号?
无法登录?
社交帐号登录

我要回帖

更多关于 c语言保留两位小数 的文章

 

随机推荐