我需要帮助来创建嵌套的for
循环。这是针对“跳跃游戏”的,基本上有一个数组,里面有一些数字。每个数组的数字[位置]
有一定次数可以跳到尽头。例如:[2 3 1 1 4 0]
,所以array[0] = 2
可以跳跃2或1个位置,array[1] = 3
可以跳跃3,2或1个位置。例如:[3 2 1 0 4 0]
,因此您基本上无法到达阵列中的位置。
我已经做了一段时间了,无法提出循环。 readFromFile
基本上只是创建数组大小。现在已经有了大小,我需要检查每个卡住的数字。
void readFromFile(int list[], int& size, ifstream& infile)
{
infile >> list[size];
while (!infile.eof()) // Loops until end of file is reached
{
size++;
infile >> list[size];
}
infile.close();
return;
}
bool getToLastIndex(int list[], int size)
{
for(i=0; i< size;i++)
{
if(list[i] == 0)
break;
j=i+list[i]; //Resetting it for a new jump or section on array?
i=j;
for(int j=0; j <= list[i]; j++)
{
list[j] == return true;
}
}
}
我希望能够使用
getToLastIndex(list,size);
if(getToLastIndex() == true)
{
cout << "Mario FTW" << endl; // Got to the end
}
else
cout << "This bridge has the workings of bowser all over it >:( " << endl; //Couldnt make it to the end
作业以马里奥为主题...我没有选择输出
答案 0 :(得分:0)
尝试以下操作:
void readFromFile(int list[], int &size, ifstream& infile)
{
size = 0;
if(!infile.is_open())
return;
while(!infile.eof())
{
infile >> list[size++];
}
infile.close();
}
bool isTheLastReachable(int list[], int index, int size)
{
if(index < size)
{
if(index)
{
for(int i = 0; i < list[index]; ++i)
if(isTheLastReachable(list, index + i, size))
return true;
return false;
}
else
return false;
}
return true;
}
bool getToLastIndex(int list[], int size)
{
return isTheLastReachable(list, 0, size);
}