| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 189 人关注过本帖
标题:希望帮忙解决一下
只看楼主 加入收藏
yanbing_dong
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-6-9
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:2 
希望帮忙解决一下
#include<stdio.h>
#include<stdlib.h>
# define LEN sizeof(struct Num)
struct Num
{
       float a;
       struct Num * b;
};
struct Num * input (void)
{
    int n;
    struct Num * head,* p1,*p2;
    head=NULL;
    n=0;
    p1=p2=(struct Num *)malloc(LEN);
    scanf("%f",&p1->a);
    while(p1->a!=0)
       {
          n=n+1;
          if(n==1) head=p1;
          else p2->b=p1;
          p1=p2;
          p1=(struct Num *)malloc(LEN);
          scanf("%f",&p1->a);
       }
       p2->b=NULL;
       return(head);
}
int main()
{
    struct Num *q;
    q=input();
     printf("%f\n",q->a);
    q=q->b;
     printf("%f\n",q->a);
          system("pause");
          return 0;
}

    向程序中输入两个以上的数时,只能输出第一个数,而后程序终止运行,似乎是红色部分无法运行,但具体不知道哪里出问题了,希望帮忙解决一下

搜索更多相关主题的帖子: include 
2012-11-17 23:00
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:5 
    while(p1->a!=0)
       {
          n=n+1;
          if(n==1) head=p1;
          else p2->b=p1;
          p1=p2;
          p1=(struct Num *)malloc(LEN);
          scanf("%f",&p1->a);
       }
       p2->b=NULL;
循环体里面每次把新的节点加到p2->b,但是你没有改变p2,这样循环体退出了也只有两个节点;然后你p2->b=NULL,这样就剩下一个节点了。

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-11-18 08:13
yanbing_dong
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-6-9
收藏
得分:0 
谢谢,知道了
2012-11-18 20:56
快速回复:希望帮忙解决一下
数据加载中...
 
   



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

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