weixin_51140667 2023-04-05 21:51 采纳率: 75%
浏览 26
已结题

c++为什么在功能函数里给数组赋值赋不上

img


我把这个

memset(rem,0,sizeof rem);
  
  dfs(0,0,0,rem,rem,xx,yy,xxsum,yysum);

改成这样就可以了 为啥

int rem[410],rem2[410];
  memset(rem,0,sizeof rem);
  memset(rem2,0,sizeof rem2);
  dfs(0,0,0,rem,rem2,xx,yy,xxsum,yysum);

后来才发现c++数组作为函数参数时不能拷贝数组,只能传递地址,坑爹啊


```c++
#include <bits/stdc++.h>
using namespace std;
int N;
int xx[25],yy[25],xxsum=0,yysum=0;//xsum ysum为剑的总数
int ans[410];//最终答案


void dfs(int l,int ny,int nx,int rem[410],int r2[410],int x[25],int y[25],int xsum,int ysum){
//l当前循环次数 ny nx 当前位置横纵坐标 rem存储走过的路 r2记录路编号 xy为xy轴上剑数 xysum为剑总数  
  rem[ny*N+nx]=99;
  cout<<ny*N+nx<<"ps:"<<rem[ny*N+nx]<<endl;
  r2[l]=ny*N+nx;//记录当前路编号
  x[nx]--;//走到此处减少此处的剑
    y[ny]--;
    xsum--;ysum--;//减少剑的总数
    cout<<"<<";
  for(int i=0;i<410;i++)
    cout<<rem[i]<<" ";
  cout<<endl; 
  cout<<l<<" "<<ny<<" "<<nx<<" "<<rem[r2[l]]<<" r2:"<< r2[l]<<" "<<x[nx]<<" "<<y[ny]<<" "<<xsum<<" "<<ysum<<endl;
  int dy[4]={-1,1,0,0},dx[4]={0,0,-1,1};
  for(int i=0;i<4;i++){
    cout<<"<"<<ny+dy[i]<<" "<<nx+dx[i]<<" "<<x[nx+dx[i]]<<" "<<y[ny+dy[i]]<<" "<<rem[(ny+dy[i])*N+nx+dx[i]]<<" "<<endl;
    if(ny+dy[i]>-1 && ny+dy[i]<N && nx+dx[i]>-1 && nx+dx[i]<N && x[nx+dx[i]]!=0 && y[ny+dy[i]]!=0 && rem[(ny+dy[i])*N+nx+dx[i]]==0   )
    {//上下左右不能越界 有剑可以走 之前没走过这条路
      //cout<<ny+dy[i]<<" "<<nx+dx[i]<<" l:"<<l<<endl;
      //rem[(ny+dy[i])*N+nx+dx[i]]=1;//记录走过的路
      dfs(l+1,ny+dy[i],nx+dx[i],rem,r2,x,y,xsum,ysum);
    }
  }
}

int main()
{
  // 请在此输入您的代码
  cin>>N;
  for(int i=0;i<N;i++){
    cin>>xx[i];
    xxsum+=xx[i];
  }
  for(int i=0;i<N;i++){
    cin>>yy[i];
    yysum+=yy[i];
  }

  int rem[410];
  memset(rem,0,sizeof rem);
  dfs(0,0,0,rem,rem,xx,yy,xxsum,yysum);
  for(int i=0;i<N*N;i++)
    cout<<ans[i]<<" ";

  return 0;
}

```

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 已结题 (查看结题原因) 4月5日
    • 修改了问题 4月5日
    • 修改了问题 4月5日
    • 创建了问题 4月5日

    悬赏问题

    • ¥66 关于川崎机器人调速问题
    • ¥15 winFrom界面无法打开
    • ¥15 crossover21 ARM64版本安装软件问题
    • ¥15 mymetaobjecthandler没有进入
    • ¥15 mmo能不能做客户端怪物
    • ¥15 osm下载到arcgis出错
    • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
    • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
    • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
    • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?