我正在写一个软件,遇到了一个问题。我试图做的是遍历一个数组,其中的元素只能是1或0,并写出某人从数组中给定点可以执行的最大步骤。规则是,只有在相同的数字下,人们才能迈出一步或多步。假设我的数组如下所示:1,0,0,0,0,1,1,0我从头开始,我应该只能跨步一次,因为在1是0之后,我不能在跨步时更改数字,只有在再次轮到我的时候。所以,如果我从第二个元素开始,我可以走1步,或者4步。现在,我想写下当前玩家可以踩的最大步数,但出于某种原因,它显示了最大步数+1。
每个变量都是int类型。坟墓=数组,j,max_lepes用0 初始化
#include <stdio.h>
#include <stdlib.h>
int main()
{
int tomb[200]={1,0,1,1,1,0,0,1,1,0,1}; // Fo tomb
int max_lepes,akt_pos,j,i,game_type=0;
printf("Valasszon jatek tipust (1 Ember vs Szamitogep, 2 Ember vs Ember): ");
scanf("%d", &game_type);
if (game_type==1) {
} else if (game_type==2) {
// Aktualis tomb kiirasa
printf("nAz aktualis szin tomb: ");
for (i=0; i<11; ++i) {
printf("%d ", tomb[i]);
}
i==0;
// Max lepesek kiirasa
max_lepes == 0;
akt_pos == 0;
for (j=0; j<11; ++j) {
if (tomb[j]==tomb[j+1]) {
max_lepes=max_lepes+1;
} else {
printf("nMaximum lepesek szama= %d", max_lepes);
break;
}
}
} else {
printf("Rosz szamot irt be, kerem irjon be 1-et vagy 2-et.");
}
return 0;
}
max_lepes == 0;
akt_pos == 0;
应该是
max_lepes = 0;
akt_pos = 0;
i==0;
max_lepes == 0;
akt_pos == 0;
这些不会将变量分配给0。==
用于比较,=
用于分配。所以把它们改成
i=0;
max_lepes = 1;// because max can be at least 1
akt_pos = 0;