c语言编译没问题 但运行之后没反应,这段代码编译联接都成功,可是运行时没反应...

本文介绍了使用C语言编程实现单链表的基本操作,包括逆序建立链表、字母前移加密和显示链表元素。在创建链表时,可能出现运行无反应的问题,通过在`CreateList`函数中增加提示用户输入的语句和处理回车符,解决了程序运行无响应的状况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这段代码编译连接都成功,可是运行时没反应啊

用C语言编程实现单链表的基本操作。有必要的类型说明,并完成下述函数功能:

(1)CreateList( ):逆序建立一个(带有头结点的)单链表,在键盘上按顺序输入26个大写英文字母A……Z,最后输入的字母Z,放在头结点之后;第一个输入的字母A放在单链表的末尾。

(2)EncryptList( ):将存放于单链表中的所有字母均前移3个位置,即经过前移后变化为:

(3)ListPrint( ):显示单链表所有元素,此函数调用2次,分别在EncryptList ( )函数调用之前、之后使用。

在主函数main( )中调用各个子函数完成单链表的基本操作。

#include "stdio.h"

#include "stdlib.h"

typedef struct LNode

{

char data;

struct LNode *next;

}LNode, *LinkList;

void CreateList(LinkList & L, int n)

{

int i;

L=(LinkList)malloc(sizeof(LNode));

L->next=NULL;

for(i=n;i>0;--i)

{

LinkList p;

p=(LinkList)malloc(sizeof(LNode));

scanf("%c",&(p->data));

p->next=L->next;

L->next=p;

}

}

int ListPrint(LinkList L)

{

LinkList q;

q=L-> next;

if(!q)

{

printf("error!\n");

return 0;

}

while(q)

{

printf("%c\t",q->data);

q=q->next;

}

}

int EncryptList(LinkList L)

{

LinkList q;

q=L-> next;

if(!q)

{

printf("error!\n");

return 0;

}

while(q)

{

q->data=(q->data-65+26-3)%26+65;

q=q->next;

}

return 0;

}

int main()

{

int a=26;

LinkList b;

CreateList(b,a);

ListPrint(b);

EncryptList(b);

ListPrint(b);

return 0;

}

分享到:

------解决方案--------------------

引用:Quote: 引用:Quote: 引用:Quote: 引用:运行没有反应分两种:一种程序运行完了没有输出,说明没有走到有输出的代码分支。还有就是程序没完没了,那就是有死循环。

调试下就知道了。能帮我看看那出错吗?看了快一个小时啦也没看出哪里错了

调试会么,一行一行单步运行。我还是菜鸟,不会啊!

学会调试比学会写成程序更重要。

------解决方案--------------------

void CreateList(LinkList & L, int n)

{

int i;

L=(LinkList)malloc(sizeof(LNode));

L->next=NULL;

for(i=n;i>0;--i)

{

LinkList p;

p=(LinkList)malloc(sizeof(LNode));

printf("input a char: ");//加一句这个吧!看是不是需要在等待用户输入了呢!

scanf("%c",&(p->data));

p->next=L->next;

L->next=p;

getchar(); //吃掉输入的回车符

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值