| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1079 人关注过本帖
标题:我的26个字符的插入来给修改修改把````
取消只看楼主 加入收藏
guitarliukai
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-12-5
收藏
 问题点数:0 回复次数:8 
我的26个字符的插入来给修改修改把````

#include <stdio.h> #define len sizeof(struct a) #include <malloc.h>

struct a {char lk; struct a *next ; };

main() {struct a *head,*p,*q,*s; int i; char ch; head=p=(struct a *) malloc(len); for(i=1;i<=26;i++) { (p->lk)=('a'+i-1); p->next=(struct a *)malloc(len); p=p->next;

} p->next=NULL;

p=head; while (p->next != NULL)

{ printf("%c ",p->lk); p=p->next; } /* printf("\n"); */

q=p=head; printf("\ninput deleted letter:"); scanf("%c",&ch); while(ch != '0') { q=p=head;

while(p->lk != ch && p->next != NULL) {q=p; p=p->next;} if(p==head) { head=head->next;free(p); } else { if(p->lk == ch)

{ q->next=p->next; free(p) ; } else printf("can't find it"); }

q=p=head; printf("\n"); while (p->next != NULL)

{ printf("%c ",p->lk); p=p->next; } /* printf("\n"); */

q=p=head;

printf("\n2:input deleted letter"); fflush(stdin); scanf("%c",&ch); }

p=head; while(p->next != NULL) {printf("%c",p->lk); p=p->next;}

q=p=head; printf("\ninput insert letter"); /*insert */ scanf("%c",&ch); 这句为什么没执行啊``````为什么插入只能插一个```急`` fflush(stdin); while(ch != '0') { q=p=head; while(p->lk < ch && p->next != NULL) { q=p; p=p->next;} if(p==head) { s=(struct a *) malloc(len); s->lk=ch; s->next=head; q=p=s; }

else { if (p->lk == ch) printf("inserted is exist"); else {s=(struct a *) malloc(len); s->lk=ch; s->next=p; q->next=s; q=p=head;} }

while(p->next != NULL) {printf("%c",p->lk); p=p->next;} p=head; printf("\n2insert a letter");

scanf("%c",&ch); fflush(stdin);

}

}

搜索更多相关主题的帖子: 字符 
2005-04-10 09:11
guitarliukai
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-12-5
收藏
得分:0 
删除操作没问题`````

就是那个 scanf 没执行`````

我录的歌 http://1680279./ 我现在打不开了????
2005-04-10 09:15
guitarliukai
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-12-5
收藏
得分:0 
我的插入操作也有问题```

大家给修修`

我录的歌 http://1680279./ 我现在打不开了????
2005-04-10 09:20
guitarliukai
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-12-5
收藏
得分:0 
现在就剩下插入操作的了```````

那个scanf 函数的好了```

我录的歌 http://1680279./ 我现在打不开了????
2005-04-10 09:26
guitarliukai
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-12-5
收藏
得分:0 

怎么没人啊```` #include <stdio.h> #define len sizeof(struct a) #include <malloc.h>

struct a {char lk; struct a *next ; };

main() {struct a *head,*p,*q,*s; int i; char ch; head=p=(struct a *) malloc(len); for(i=1;i<=26;i++) { (p->lk)=('a'+i-1); p->next=(struct a *)malloc(len); p=p->next;

} p->next=NULL;

p=head; while (p->next != NULL)

{ printf("%c ",p->lk); p=p->next; } /* printf("\n"); */

q=p=head; printf("\ninput deleted letter:"); scanf("%c",&ch); while(ch != '0') { q=p=head;

while(p->lk != ch && p->next != NULL) {q=p; p=p->next;} if(p==head) { head=head->next;free(p); } else { if(p->lk == ch)

{ q->next=p->next; free(p) ; } else printf("can't find it"); }

q=p=head; printf("\n"); while (p->next != NULL)

{ printf("%c ",p->lk); p=p->next; } /* printf("\n"); */

q=p=head;

printf("\n2:input deleted letter"); fflush(stdin); scanf("%c",&ch); }

p=head; while(p->next != NULL) {printf("%c",p->lk); p=p->next;}

q=p=head; printf("\ninput insert letter"); /*insert */ 就看这个插入的```````````````````插入的判断条件大家看看错没(蓝字是) fflush(stdin); scanf("%c",&ch);

while(ch != '0') { q=p=head; while(p->lk < ch && p->next != NULL) { q=p; p=p->next;}

if(p==head) { s=(struct a *) malloc(len); s->lk=ch; s->next=head; p=s; }

else { if (p->lk == ch) { printf("inserted is exist"); } else {s=(struct a *) malloc(len); s->lk=ch; s->next=p; q->next=s; p=head;}

} printf("\ntest %c\n",p->next->lk);

while(p->next != NULL) {printf("%c",p->lk); p=p->next;} p=head; printf("\n2insert a letter");

fflush(stdin); scanf("%c",&ch);

}

}


我录的歌 http://1680279./ 我现在打不开了????
2005-04-10 10:34
guitarliukai
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-12-5
收藏
得分:0 
首先谢谢你` 别人做的毕竟不是自己做的```` 只会骗了自己````` 我现在就是不知道插入 判断条件是什么 a-->b-->c-->d-->e-->f-->---------------z 如果 是 while(p->lk < ch && p->next != NULL) { q=p; p=p->next;} 就得考虑 b-->c-->d-->e-->-------->z 现在我不知道该怎么插入的条件(即while的) 我的程序没 头节点 麻烦大家想想,能有什么解决的方法```````````

我录的歌 http://1680279./ 我现在打不开了????
2005-04-10 16:03
guitarliukai
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-12-5
收藏
得分:0 
插入的位置是不固定的`````由用户输入

比如说把

这时的线形表是
a--&gt;b--&gt;c--&gt;------&gt;z

如果插入 c 的话就不能插

如果插入a 的话,也不能





在用户删除了多个字母后,如

e--&gt;f--&gt;g

就剩下这三个  了```

这时在插入的话,如果输入 a ,插入后为 a--&gt;e--&gt;f--&gt;g

                             如果输入z,  插入后为 e--&gt;f--&gt;g--&gt;z

我录的歌 http://1680279./ 我现在打不开了????
2005-04-10 16:40
guitarliukai
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-12-5
收藏
得分:0 

我录的歌 http://1680279./ 我现在打不开了????
2005-04-10 18:15
guitarliukai
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-12-5
收藏
得分:0 
q=p=head; printf("\ninput insert letter"); //insert 就看这个插入的```````````````````插入的判断条件大家看看错没(蓝字是) fflush(stdin); scanf("%c",&ch); fflush(stdin); while(ch != '0') { if ( ch < 'a' || ch > 'z' )//add 2 判断输入是否合法 { printf( "\a\n" ); fflush( stdin ); } else { q=p=head; while( p != NULL && p->lk < ch )//更改理由同上面那个while一样的 { q=p; p=p->next; } /*********************************************************/ //更改理由同上 //本人添加的 if ( p == NULL ) //我感觉还得加点儿,判断是否为 存在的字符的判断`````` { if ( p == q ) { //就是p=q=head=NULL的情况 head = (struct a *) malloc(len); head->lk = ch; head->next = NULL; } else { s=(struct a *) malloc(len); s->lk=ch; s->next = NULL; q->next=s; } } else { if ( p == q ) // 我感觉还得加点儿,判断是否为 存在的字符`````` { //head需要插入 s = (struct a *) malloc(len); s->lk = ch; s->next = head; head = s; } else { s=(struct a *) malloc(len); s->lk=ch; s->next = p; q->next=s; } }

我录的歌 http://1680279./ 我现在打不开了????
2005-04-11 20:36
快速回复:我的26个字符的插入来给修改修改把````
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017577 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved