首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2013-11-25 
这段代码编译连接都成功,可是运行时没反应啊用C语言编程实现单链表的基本操作。有必要的类型说明,并完成下

这段代码编译连接都成功,可是运行时没反应啊
用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(); //吃掉输入的回车符
}
}

热点排行