| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 497 人关注过本帖
标题:求大神帮忙看看这个敢死队问题源代码的错误 急! 谢谢了
只看楼主 加入收藏
rc61liu
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-7-26
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
求大神帮忙看看这个敢死队问题源代码的错误 急! 谢谢了
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
这是程序   错误分别是41,131,195,209,229 都是with no type  229是main must return int  谢谢了
搜索更多相关主题的帖子: 敢死队 源代码 return 
2013-07-26 11:29
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:10 
贴程序代码方便帮你调试,这样的截图不方便

思考赐予新生,时间在于定义
2013-07-26 11:35
rc61liu
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-7-26
收藏
得分:0 
回复 楼主 rc61liu
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define  MAXSIZE  10000//使用顺序表完成要求
typedef  int DataType;
typedef  struct  Node
{
  DataType  data[MAXSIZE];
             int  length;
}SeqList,*PseqList;
PseqList Init_SeqList(void)
{
  PseqList PL;
  PL=(PseqList)malloc(sizeof(SeqList));
  if(PL)
        PL->length=0;
  return(PL);
}//在顺序表中插入一个元素
int Insert_SeqList(PseqList PL,int i,DataType x)
{
    int j;
    if(!PL)
    {
        printf("顺序表不存在!");//表不存在,不能插入
    }
    if(PL->length>=MAXSIZE)
    {
        printf("顺序表空间已满!");//表空间已满,不能插入
    }
    if(i<1||i>PL->length+1)//检查插入位置的合法性
    {
        printf("插入位置不正确!");
    }
    for(j=PL->length;j>=i;j--)
        PL->data[j+1]=PL->data[j];//移动元素
    PL->data[i]=x;//插入新的队员编号
    PL->length++;//表长加1
    return i;//插入成功,返回
}
LinearListMethod(){
int i=1,j,n,num,count=0,k;
    PseqList p;
    printf("请输入队员人数:");
    scanf("%d",&n);
    if(n==1)
        printf("只有排长一人担任!");
    else if(n>1)
    {
    p=Init_SeqList();
    p->data[1]=1;
    p->length=1;
    for(num=2;num<=n;num++)
    {
        for(j=0;j<4;j++)
        {
            i--;
            if(i==0)
                i=p->length;
        }
        Insert_SeqList(p,i,num);
    }
    while(p->data[i]!=1)
    {
        i--;
        if(i==0)
            i=p->length;
        count++;
    }
    k=n+count-3;
    if(k>n)
        k=k-n;
    printf("应该从第%d名战士开始计数n",k);}
    else
        printf("输入有误,程序结束!");
}

#define QueueSize 10000 //使用循环队列完成要求
typedef struct
{
    int data[QueueSize];
    int front;
    int rear;
    int count; //记录队中元素数目
}CirQueue;

void Initial(CirQueue *Q) // 初始化队列
{
    Q->front=Q->rear=0;//对头等于对尾代表队列为空
    Q->count=0;      
}
// 判队列是否为空
int IsEmpty(CirQueue *Q)
{
    if(Q->count==0) return 1;//如果队里的元素个数为0,队列空,返回1
    else return 0;
}
 
int IsFull(CirQueue *Q) //判队列是否满
{
    if(Q->count==QueueSize) return 1;
    else return 0;
}
 
void EnQueue(CirQueue *Q,int x) //将元素进队
{
    if (IsFull(Q))
    {
        printf("队列已满n");  
        exit(1);
    }//如果队列已满就退出程序,否则就进入,元素总数自加一
    Q->count++;
    Q->data[Q->rear]=x;//最后一位赋值为小x
    Q->rear=(Q->rear+1)%QueueSize;
}
 
int DeQueue(CirQueue *Q)//元素出队列
{
    int temp;
    if(IsEmpty(Q))
    {
        printf("队列为空n"); //下溢,退出运行
        exit(1);
    }
    temp=Q->data[Q->front];//将队头的元素取出到temp里面
    Q->count--; //队列元素个数减1
    Q->front=(Q->front+1)%QueueSize; //头指针后移
    return temp;
   
}
CirdeQueueMethod(){
int n,i,start,count,j;
    CirQueue s;
    printf("输入敢死队员数目:");
    scanf("%d",&n);
    if(n==1)
        printf("只有排长一人担任!");
    else if(n>1)
    {
    for(start=1;start<=n;start++)//start为测试起点
    {
        Initial(&s);
        for(i=1;i<=n;i++)
        {
            EnQueue(&s,i);
        }//将所有士兵的编号依次进队
        for(i=1;i<start;i++)
        {
            j=DeQueue(&s);
            EnQueue(&s,j); //把队头的元素取出来然后放到队尾
        }     
        count=0; //记录已删除的结点数目
        while(count<n-1)
        {
            for(i=1;i<5;i++)
            {
                j=DeQueue(&s);
                EnQueue(&s,j);//把队头的元素取出来然后放到队尾
            }
            j=DeQueue(&s);//删除结点
            count++;  
        }
        if(s.data[s.front]==1)     break; //此时队只剩一个点,如果是排长就输出
    }
    printf("应该从第%d名战士开始计数n",start);  }
    else
        printf("输入有误,程序结束!n");
}

typedef struct node
{
 int data;
 struct node *next;
}LNode;
LNode* CREAT(int n) //创建循环链表
{
    LNode *s,*q,*t;
    int i;
    if(n!=0)
    {
          t=q=(LNode *)malloc(sizeof(LNode));
          q->data=1;//第一个结点data赋值为1
          for(i=2;i<=n;i++)
    {
      s=(LNode *)malloc(sizeof(LNode));
      q->next=s;
      q->next->data=i;//给第i个结点赋值i
      q=q->next;
     }
     q->next=t;
     }//每个结点的data即为在链表中的位置
     return t;
}
DELETE (LNode* t)//链表中元素的删除
{
    LNode *a;int i;
    while (t->next!=t)
    {
       for (i=1;i<4;i++)//查找要删除结点的前一结点
       t=t->next;
       a=t->next;
       t->next=a->next;
       free(a);//释放结点
       t=t->next;
     }
     printf("n");
     return (t->data);
}
CircularLinkedListMethod(){
LNode *p;
   int m=5,n,z,y;
   printf("请输入敢死队员总数:");
   scanf ("%d",&n); //输入队员总数
   if(n==1)
       printf("只有排长一人担任!");
   else if(n>1)   //当队员总数等于0时退出
   {
         p=CREAT(n);
         y=DELETE(p);
         z=n-y+2;
         if(z%n==0)  //排除特殊情况
            printf ("应从第 %d号战士开始计数n",z);
         else
            printf("应从第 %d号战士开始计数n",z%n);        
     }
   else
 printf("输入有误,程序结束!n");}
void main()
{
    int choice;
    begin:printf("--------------------------------------------------n");
      printf("-      请选择所用数据结构对应的序号              -n");
      printf("-    1.线性表     2.循环队列      3.循环链表     -n");
      printf("-                 4.退出程序                     -n");
      printf("-                                                -n");
          printf("--------------------------------------------------n");
    scanf("%d",&choice);
    if(choice==1)
    {
        printf("你选择了使用线性表解决!");
        LinearListMethod();//调用线性表方法函数
    }
    else if(choice==2)
    {
        printf("你选择了使用循环队列解决!");
        CirdeQueueMethod();//调用循环队列方法函数
    }
    else if(choice==3)
    {
        printf("你选择了使用循环链表解决!");
        CircularLinkedListMethod();//调用循环链表方法函数
    }
    else if(choice==4)
    {
        printf("程序已退出,谢谢使用!n");
    }
    else{
        printf("输入有误,请重新选择!n");
        goto begin;}
}
2013-07-26 11:36
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:10 
什么叫敢死队问题?
你先吧问题描述清楚,OK?

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-07-26 11:40
rc61liu
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-7-26
收藏
得分:0 
问题描述:有M个敢死队员要炸掉敌人的一碉堡,谁都不想去,排长决定用轮回数数的办法来决定哪个战士去执行任务。如果前一个战士没完成任务,则要再派一个战士上去。现给每个战士编一个号,大家围坐成一圈,随便从某一个战士开始计数,当数到5时,对应的战士就去执行任务,且此战士不再参加下一轮计数。如果此战士没完成任务,再从下一个战士开始数数,被数到第5时,此战士接着去执行任务。以此类推,直到任务完成为止。
排长是不愿意去的,假设排长为1号,用c或c++语言编写程序,求出从第几号战士开始计数才能让排长最后一个留下来而不去执行任务。
2013-07-26 11:52
rc61liu
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-7-26
收藏
得分:0 
如果可以的话  哪位大神可以帮小弟直接编写一个或是有备份的 也可以直接贴上  谢谢了
2013-07-26 12:06
快速回复:求大神帮忙看看这个敢死队问题源代码的错误 急! 谢谢了
数据加载中...
 
   



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

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