注册 登录
编程论坛 C++教室

求助帖 编译通过,链接不行

七七七果 发布于 2015-11-10 11:38, 508 次点击
#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);
}



网上看的,做约瑟夫环的问题
7 回复
#2
林月儿2015-11-10 11:54
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下面是块还是?
#3
七七七果2015-11-10 11:56
回复 2楼 林月儿
我也不大懂,网上搜的,解决约瑟夫环的问题的
#4
七七七果2015-11-10 12:18
回复 2楼 林月儿
加了括号也不行,依旧提示
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/yuese.exe : fatal error LNK1120: 1 unresolved externals
#5
林月儿2015-11-10 12:28
程序代码:
#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;
}
#6
七七七果2015-11-10 12:41
回复 5楼 林月儿
这个更看不懂了,原来的那个代码不能改进一下吗?为啥编译可以,链接就不行了
#7
wmf20142015-11-10 12:42
回复 4楼 七七七果
帮你百度的,参考下。
原因:是在建项目或工程时把Win32 Application与Win32 Console Application弄错了
#8
bdhxjsq2015-11-10 19:08
上述代码主函数是WinMain,应该在Win32 Application工程创建,而你用的是Win32 Console Application,它支持主函数main

重新建立一个Win32 Application工程,把上面代码考过去运行就行了
1