在以下代码段标记处出现了如下错误,这个错误是什么意思,应该怎么修改呢,以下我提供了涉及数组的定义,以及具体语句
[Error] invalid operands of types 'int' and 'int [100]' to binary 'operator-'
int need[max_n][max_m]={0};//还需多少资源
int request[max_n][max_m]={0};//申请资源
int available[max_m]={0};//当前可用资源
int advance(int i)//将资源分配给第i个进程
{
for (int j=0;j<M;j++)
{
available[j]=available[j]-request[j]; //标记处
allocation[i][j]=allocation[i][j]+request[j];
need[i][j]=need[i][j]-request[j];
}
return True;
request是 二维数组, request[j] 是 一维数组, 你这就 直接 减了 ???
将马随机放在国际象棋的8×8棋盘Board[8][8]的某个方格中,马按走棋规则进行移动。要求每个方格只能进入一次,走遍棋盘上全部64个方格。编写非递归程序,求出马的行走路线,并按求出的行走路线,将数字1,2,3,…,64依次填入8×8的方阵,输出之。要求给出其中的100个解。
为了完成目的,需要定义一个二维数组Board[8][8],同时定义在x,y方向棋子可以行走的方向xd [],yd [],为了简便,定义define M 8,方便调试程序。
同时定义基础结构和栈相关函数。
定义顺序栈结构: 定义存储马位置和方向的结构体:
typedef struct{ typedef struct{
pos *base; int x,y;//位置
pos *top;
int stacksize; int d;//方向
} SqStack;//顺序栈定义 }pos;//存储马参数结构体
StackEmpty(SqStack S)判断栈是否空;Push(SqStack &S, pos e) 插入元素e为新的栈顶元素;Pop(SqStack &S, pos &e)删除S的栈顶元素,用e返回其值。
通过输入棋子不同的初始值,把走过位置数据放入栈中,当出现错误时退栈返回,再向另一个方向行走,循环这个步骤,直到走完整个棋盘时,输出存入二维数组Board的值。