那位高手帮找找程序里的错误

来源:百度知道 编辑:UC知道 时间:2024/09/23 19:03:36
初学用链表,编了以下程序,想实现的功能是:
n个人围成一圈,编号1~n,从第一个人开始1 2 3 循环报数,数到3的人退出圈子,然后继续直到剩下一个人,输入人数n,计算出最后剩下的人的号数。
编译通过了,但运行错误:

LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/circle_lian.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

找了好久不知道错在哪(!。!)郁闷死了
哪位高手帮帮忙,尽管也许错误很低级。
谢谢了^.^

代码如下:

#include<stdio.h>
#include<malloc.h>
struct danyuan
{
int num;
struct danyuan *next;
};
void main()
{
int countl,i,count,k,n,r;
struct danyuan *p1,*p2,*p,*q,*header;
countl=1;
i=1;
scanf("%d",&n);
while(i<=n)
{
if(countl==1)
{
header=p1=p2=(struct danyuan *)malloc(sizeof(struct danyuan));
p1->num=i;
}
else
{
p1=(struct danyuan *)malloc(sizeof(struct danyuan));
p2->next=p1;
p2=p1;
p1->num=i;

我有一个类似的题目
是选班长的你看看
#include <stdio.h>
#define MAX 100

void main()
{
int i,j,m,n;
int *p,num[MAX];

printf("请输入总人数:");
scanf("%d",&n);

p = num; /*指向数组的指针*/
for(i = 0;i < n; ++i)
{
*(p + i) = i + 1; /*数组赋值为学员编号1-n*/
}
i = 0; /*i控制指针移动*/
j = 0; /*j报数计数器1-3*/
m = 0; /*m退出人数计数器*/
while(m < n - 1)
{
if(*(p + i) != 0) /*编号不为0,报数计数器+1*/
{
++j;
}
if(j == 3) /*报数到3时*/
{
*(p + i) = 0; /*此人编号为0,表示其退出*/
j = 0; /*报数计数器置0*/
++m; /*退出人数计数器+1*/
}
++i; /*指针移动到下一位置*/
if(i == n) /*如果到第n个人,重新开始*/
{
i = 0;
}
}
while(*p == 0) /*查找编号不为0的人*/