| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 446 人关注过本帖
标题:链表 ,有点忘了 汗 大侠指点下
只看楼主 加入收藏
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
链表 ,有点忘了 汗 大侠指点下
程序代码:
#include<stdio.h>
#include<stdlib.h>

struct data
{
    int m,n;
    int min;
    struct data *next;
};

int main()
{
    struct data *p,*head;
    int a,t;
    p=(struct data *)malloc(sizeof(struct data));
    head=p;

    scanf("%d%d",&p->m,&p->n);
    while(p->m!=0&&p->n!=0)
    {
        p=p->next;
        scanf("%d%d",&p->m,&p->n);
    }
    p->next=NULL;

    p=head;
    while(p)
    {
        if(p->m<p->n)
        {
            t=p->m;
              p->m=p->n;
            p->n=t;
        }

        p->min=p->m*p->n;
        while(p->n)
        {
            a=p->m%p->n;
            p->m=p->n;
            p->n=a;
        }
        p->min=p->min/p->m;
        printf("%d\n",p->min);
        p=p->next;
    }

    p=head;
   while(p)
  {
      free(p);
      p=p->next;
  }
    return 0;
}
稍改了下,还是有问题
问题是输入若干组数据以0 0结束,输出其最小公倍数形如
4 6
10 25
0 0然后输出
程序代码:
#include<stdio.h>
#include<stdlib.h>

struct data
{
    int m,n;
    int min;
    struct data *next;
};

int main()
{
    struct data *p,*head;
    int a,t;
    p=(struct data *)malloc(sizeof(struct data));
    head=p;

    scanf("%d%d",&p->m,&p->n);
    while(p->m!=0&&p->n!=0)
    {
        p=p->next;
        scanf("%d%d",&p->m,&p->n);
    }
    p->next=NULL;

    p=head;
    while(p)
    {
        if(p->m<p->n)
        {
            t=p->m;
              p->m=p->n;
            p->n=t;
        }

        p->min=p->m*p->n;
        while(p->n)
        {
            a=p->m%p->n;
            p->m=p->n;
            p->n=a;
        }
        p->min=p->min/p->m;
        printf("%d\n",p->min);
        p=p->next;
    }

    p=head;
   while(p)
  {
      free(p);
      p=p->next;
  }
    return 0;
}
稍改了下,还是有问题
问题是输入若干组数据以0 0结束,输出其最小公倍数形如
4 6
10 25
0 0然后输出

[ 本帖最后由 烟雾中的迷茫 于 2011-12-26 18:51 编辑 ]
搜索更多相关主题的帖子: head next 
2011-12-26 13:51
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:12 
问题也不描述清楚
2011-12-26 14:11
edward_eric
Rank: 2
等 级:论坛游民
帖 子:32
专家分:83
注 册:2011-10-5
收藏
得分:8 
汗,这链表用的,何止有点忘了。首先,你的动态分配类型转错了。然后就是链表连接,根本就没有连上嘛,指针到处乱跑。最后就是释放空间,不能只释放表头,要一个个释放。具体的没看,你先把这弄好吧。另外,要准确描述问题,要不是你这代码短,问题明显,我还真不想看。
2011-12-26 17:06
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
改了下,还是有问题 如题
2011-12-26 18:52
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<stdlib.h>

struct data
{
    int m,n;
    int min;
    struct data *next;
};

int main()
{
    struct data *p,*head,*p1;
    int a,t;
    p=(struct data *)malloc(sizeof(struct data));
    p1=head=p;

    scanf("%d%d",&p->m,&p->n);
    while(p->m!=0&&p->n!=0)
    {
        p=(struct data *)malloc(sizeof(struct data));
        scanf("%d%d",&p->m,&p->n);
        p1->next=p;
        p1=p;
    }
    p->next=NULL;

    p=head;
    while(p->next!=NULL)
    {
        if(p->m<p->n)
        {
            t=p->m;
              p->m=p->n;
            p->n=t;
        }

        p->min=p->m*p->n;
        while(p->n)
        {
            a=p->m%p->n;
            p->m=p->n;
            p->n=a;
        }
        p->min=p->min/p->m;
        printf("%d\n",p->min);
        p=p->next;
    }
    p=head;
    while(p)
    {
       free(p);
       p=p->next;
    }
    return 0;
}

这次改的 通过了  但是有点小问题 各位再看看
2011-12-27 10:11
快速回复:链表 ,有点忘了 汗 大侠指点下
数据加载中...
 
   



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

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