程序设计 - 用dev c++写程序遇到了一个叫ld returned 1 exit status的error大家帮我看看怎么回事啊

查看:129
本文介绍了程序设计 - 用dev c++写程序遇到了一个叫ld returned 1 exit status的error大家帮我看看怎么回事啊的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

数模课上看到一个商人过河的问题。
三个商人三个随从过河,船上最多坐两人,如果两岸的任意一边随从人数超过商人,随从就会杀人越货。求过河方式。
初学者只会c语言,想试一下结果就成了这样。
源代码:

#include<stdio.h>
#define x 10
#define y 1
int check(int *pj,int a,int i);
void walk(int *pa,int b,int m,int n,int *pi);
void box(int a,int m,int n,int *pj,int *pi,int *pa,int i);
void find(int a,int *pj,int *pi,int *pa,int i);

int main(void)
{    
int a=33;//起始位置
     int *pa;//用来改写a
    pa=&a;     int i=0;//步数计数器
     int *pi=&i;    
pi=&i;    
int *pj=&a;//记录已经走过的点
    pj=&a;
    find(a,pj,pi,pa,i);    
return 0; 
} 
int check(int *pj,int a,int i)
{    int m,n;    
       for(m=0;m<=i;m++)
          {        
             if(a==*(pj+i))    
                     {            n=0;            break;        }        
             else    
                        n=1;    
         }
    return n;
}
void walk(int *pa,int b,int m,int n,int *pi,int *pj)
{    *pa=b;     
*(pj+(*pi))=*pa;    
printf("%d ",b);
    (*pi)++;
}
void box(int a,int m,int n,int *pj,int *pi,int *pa,int i)
{    
int b=a+n*x+m*y;
    if(check(pj,b,i)==1)
           {    
          walk(pa,b,m,n,pi);        
          find(a,pj,pi,pa,i);
            }    
if(check(pj,b,i)==0)        
         printf("%d",check(pj,b,i));
}

void find(int a,int *pj,int *pi,int *pa,int i)
{    
if((*pj)%2)    
      {    
      if(a-2*x>=0) 
              box(a,-2,0,pj,pi,pa,i);    
          if(a-x>=0) 
              box(a,-1,0,pj,pi,pa,i);    
          if(a-2*y>=0) 
              box(a,0,-2,pj,pi,pa,i);        
       if(a-y>=0) 
              box(a,0,-1,pj,pi,pa,i);
              if((a-y>=0)&&(a-x>=0))
              box(a,-1,-1,pj,pi,pa,i);
            }    
else 
           {    
           if(a-2*x>=0) 
                 box(a,2,0,pj,pi,pa,i);    
           if(a-x>=0) 
                 box(a,1,0,pj,pi,pa,i);    
            if(a-2*y>=0) 
                 box(a,0,2,pj,pi,pa,i);    
            if(a-y>=0) 
                 box(a,0,1,pj,pi,pa,i);    
             if(a-y>=0&&a-x>=0)
                 box(a,1,1,pj,pi,pa,i);
             }
    }

复制粘贴过来我的缩进就都没了。。。版式手机粗略调了一下。。。大家见谅

解决方案

你的函数walk()声明与实现不一致,你数数参数个数←_←

这篇关于程序设计 - 用dev c++写程序遇到了一个叫ld returned 1 exit status的error大家帮我看看怎么回事啊的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆