xdoj跳一跳求改错,题目在下面
#include
int main()
{
int n, i, sum;
i=1;
sum=0;
while (scanf("%d", &n) != 0)
{
if (n==1)
sum++;
else if (n==2)
{
do
{
sum=sum+2*i;
i++;
}while (n==2);
}
}
printf("%d", sum);
system("pause");
return 0;
}
跳一跳是一款微信小游戏,游戏规则非常简单,只需玩家要从一个方块跳到下一个方块,如果未能成功跳到下一个方块则游戏结束。
计分规则如下:
输入说明
输入为若干个非零整数(整数个数小于1000),表示玩家每次的跳跃情况。整数之间用空格分隔,整数取值为0,1,2。
0 表示未能成功跳到下一个方块上,
1 表示成功跳到下一个方块上但未跳到方块中心,
2 表示成功跳到下一个方块上,且刚好跳到方块中心。
输入的数据只有最后一个整数是0,其余均非零。
输出说明
输出一个整数表示该玩家的最终得分。
输入样例
1 1 2 1 2 2 2 0
输出样例
17
此处为死循环
#include <stdio.h>
int main()
{
int k, i, sum,arr[1000];
i=2;
sum=0;
for(k=0;k<1000;k++)
{
scanf("%d",&arr[k]);
if(arr[k]==0)
break;
}
k=0;
int flag=0;//标记前一步是否跳到中心 ,1表示是,0表示否
while (arr[k]!=0)
{
if (arr[k]==1)
{
sum++;
flag=0;
i=2;
}
else
{
if(flag==1)
{
sum=sum+2*i;
i++;
}
else
sum=sum+2;
flag=1;
}
k++;
}
printf("%d", sum);
return 0;
}