| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 508 人关注过本帖
标题:求助帖 编译通过,链接不行
只看楼主 加入收藏
七七七果
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-11-10
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
求助帖 编译通过,链接不行
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;

int a[1000000];

struct LNode{
    int num;
    LNode *next;
};
LNode *p,*r,*list;

/*利用单向循环链表实现*/
void joseph(int n, int m){//n:总人数;m:报数上限
    printf("\n%d个人报数,上限为%d \n",n,m);
    int i;
    //创建链表
    for(i=1;i<=n;i++){
        p = new LNode;
        p->num=i;
        if(list==NULL)
            list=p;
        else
            r->next=p;
        r=p;
    }

    p->next=list;//使链表循环
    p=list;//p指向头结点
    r=p;

    //x循环删除队列中的结点,即出列
    printf("出列者序列:");
    while(p->next!=p){
        for(i=1;i<m;i++){
            r=p;
            p=p->next;
        }
        r->next=p->next;
        printf("%d ",p->num);
        free(p);
        p=r->next;
    }
    printf("\n最后留下的人是:%d\n",p->num);
}



网上看的,做约瑟夫环的问题
搜索更多相关主题的帖子: include 
2015-11-10 11:38
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
void joseph(int n, int m){//n:总人数;m:报数上限
    printf("\n%d个人报数,上限为%d \n",n,m);
    int i;
    //创建链表
    for(i=1;i<=n;i++){
        p = new LNode;
        p->num=i;
        if(list==NULL)
            list=p;
        else{
            r->next=p;
        r=p;}

    }
else下面是块还是?

剑栈风樯各苦辛,别时冰雪到时春
2015-11-10 11:54
七七七果
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-11-10
收藏
得分:0 
回复 2楼 林月儿
我也不大懂,网上搜的,解决约瑟夫环的问题的
2015-11-10 11:56
七七七果
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-11-10
收藏
得分:0 
回复 2楼 林月儿
加了括号也不行,依旧提示
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/yuese.exe : fatal error LNK1120: 1 unresolved externals
2015-11-10 12:18
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:5 
程序代码:
#include<iostream>
#include<list>
using namespace std;
main(){
    int m,n,i=0;
    cout<<"总人数:";
    cin>>n;
    cout<<"报数上限:";
    cin>>m;
    list<int> a;
    for(int i=1;i<=n;i++){
        a.push_back(i);
    } 
    while(a.size()>1){
        if((i+1)%m==0)
            a.pop_front();
        else{
            a.push_back(a.front());
            a.pop_front();
        }
        i++;
    }
    cout<<"最后留下的人的编号是:"<<a.front()<<endl;
}

剑栈风樯各苦辛,别时冰雪到时春
2015-11-10 12:28
七七七果
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-11-10
收藏
得分:0 
回复 5楼 林月儿
这个更看不懂了,原来的那个代码不能改进一下吗?为啥编译可以,链接就不行了
2015-11-10 12:41
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:5 
回复 4楼 七七七果
帮你百度的,参考下。
原因:是在建项目或工程时把Win32 Application与Win32 Console Application弄错了

能编个毛线衣吗?
2015-11-10 12:42
bdhxjsq
Rank: 2
等 级:论坛游民
帖 子:2
专家分:10
注 册:2015-11-10
收藏
得分:10 
上述代码主函数是WinMain,应该在Win32 Application工程创建,而你用的是Win32 Console Application,它支持主函数main

重新建立一个Win32 Application工程,把上面代码考过去运行就行了
2015-11-10 19:08
快速回复:求助帖 编译通过,链接不行
数据加载中...
 
   



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

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