| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 804 人关注过本帖
标题:求高手程序运行结果不对
只看楼主 加入收藏
ileelsai
Rank: 5Rank: 5
等 级:职业侠客
帖 子:87
专家分:303
注 册:2011-9-25
结帖率:100%
收藏
已结贴  问题点数:15 回复次数:6 
求高手程序运行结果不对
代码如下:
#include "stdio.h"
#include "stdlib.h"
typedef int  Status;         //状态类型
typedef struct LNode      //结点
{  char data;
   struct LNode *next;
}LNode;

typedef struct LinkList     //链表
{  LNode *head,*tail;
   int len;
}LinkList;

Status Create_L(LinkList &L)     //尾插法创建链表
{    int i,n;
     LNode *p;
    printf("请输入链表的结点个数:");
    scanf("%d",&n);
    L.head=(LNode *)malloc(sizeof(LNode));
    L.tail=L.head;L.tail->next=NULL;L.len=0;
    //创建头结点
    printf("请依此输入数据:");
     for(i=0;i<n;i++)
      {  p=(LNode *)malloc(sizeof(LNode));
         scanf("%c",&p->data);
         p->next=NULL;L.tail->next=p;
         L.tail=p;++L.len;
       }
     return 1;
}
Status Print_L(LinkList L)
//输出链表
{  LNode *p;
   p=L.head->next;
   while(p)
   {printf("%c",p->data);p=p->next;}
   printf("\n");
   return 1;
}
int main()
{  LinkList L;
   Create_L(L);
   printf("链表的长度为:%d\n",L.len);
   printf("链表的最后一个为:%c\n",L.tail->data);
   Print_L(L);
}


问题:
输入1时程序结束?
--------------------------------------
我知道怎么了,重问个问题?
程序运行:1.请输入链表的结点个数:4回车
         
2.请依此输入数据:abcdefg
链表实际为 头->回车->a->b->c
怎么使链表为abcd而不读入回车


[ 本帖最后由 ileelsai 于 2011-9-26 00:51 编辑 ]
搜索更多相关主题的帖子: next include next include 
2011-09-26 00:06
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:15 
主要问题是scanf("%d",&n);后的回车被当做数据读入了。
所以输入1后程序结束。
在scanf("%d",&n);后面加一条flushall();语句即可。

 
2011-09-26 00:39
ileelsai
Rank: 5Rank: 5
等 级:职业侠客
帖 子:87
专家分:303
注 册:2011-9-25
收藏
得分:0 
回复 楼主 ileelsai
。。。
2011-09-26 00:53
ileelsai
Rank: 5Rank: 5
等 级:职业侠客
帖 子:87
专家分:303
注 册:2011-9-25
收藏
得分:0 
回复 2楼 czsbc
flushall()是stdio.h中的吗怎么编译显示first use this function

[ 本帖最后由 ileelsai 于 2011-9-26 01:01 编辑 ]
2011-09-26 00:54
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
不用谢。
2011-09-26 00:55
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
回复 4楼 ileelsai
_CRTIMP int __cdecl flushall(void);
这个是在stdio.h中的原型声明。
2011-09-26 01:23
ileelsai
Rank: 5Rank: 5
等 级:职业侠客
帖 子:87
专家分:303
注 册:2011-9-25
收藏
得分:0 
回复 6楼 czsbc
我用的DEV C++不能用flushall
我用的fflush(stdin)谢了
2011-09-26 17:44
快速回复:求高手程序运行结果不对
数据加载中...
 
   



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

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