易截截图软件、单文件、免安装、纯绿色、仅160KB

一个简单的c游戏

13个人围成一圈,从第一个人开始顺序报号1,2,3。凡报到3者退出圈子,找出最后留在圈子中的人原来的序号
结果应该是13 可我的程序的结果是11 希望好心人帮改一下
#include <stdio.h>
#include <stdlib.h>
int onlyone(int a[])
{
int i,k = 0;
for(i = 1;i <= 13;i++)
if(a[i] == 0)
k++;
if(k > 1)
return 0;
else if(k ==1)
return 1;
}
int main()
{
int a[13] = {0};
int i = 1,k = 0;
while(!onlyone(a))
{
  if(a[i] == 0)
  k++;
  if(k == 3)
  {
  a[i] = 1;
  k = 0;
  }
  i++;
  if(i == 14)
  i = 1;
}
printf("%d",i);
system("pause");
return 0;
}


for(i = 1;i <= 13;i++)
if(a[i] == 0)
k++; (此处有a[13]出现,所以说数组越界!)
还有个问题:什么时候程序跳出while(!onlyone(a))!应该在只剩下一个人的时候,那此时i
是什么数?它是最后一位退出的人,经过i++后应为9!也就是说最后一位退出的是第八位!最后可以改为:
for(i=1;i <=13;i++)
{
          if(a[i]==0)
          {printf("%d\n",i);
          break;
          }
}


/*
13个人围成一圈,


相关问答:

linux环境下gethostbyname函数问题 - C/C++ / C语言

写了个测试程序如下
   
  struct hostent *hp; 
char AlarmDevIP[20];  
  int x2;

hp = gethostbyname("www.google.com");
if (hp)
{ ......

求助:C代码change toVB代码 - VB / 基础类

挺繁琐,之前发的帖子,分值太低现在重发一个。欢迎各位大侠~~
#include "stdlib.h"
#include "math.h"
#include "stdio.h"
float objfx(float x[]);
void constraint(float x[] ......

c# Winform 触摸屏程序 - .NET技术 / C#

公司开发一个触摸屏程序,我负责的一块,实现这样一个功能,当鼠标点击窗口中图片(一张图分成几部分)的其中一部分时,将这部分图片截取出来,弹出新的窗口,将截取出的图片显示出来。我使用Rectange类控制了返回, ......

磕求C/S源码 - Delphi / 数据库相关

现有paradox数据库使用BDE驱动,拟改为C/S版,增加网络读取数据功能。请哪位大侠,提供源码。
说句不客气的话,用paradox做C/S是自寻死路。
换一个网络数据库

因为不想动大手术,仅能共享几个文件即可。

Da ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号