黑马程序员技术交流社区

标题: 学长们大神们求指点,程序貌似死循环了 [打印本页]

作者: yangyuzhe    时间: 2015-2-22 23:32
标题: 学长们大神们求指点,程序貌似死循环了
/*
* 10、 耶稣有15个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:15人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是* 报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号。
*/

#include <stdio.h>

int main(int argc, const char * argv[])
{
    int person[15] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
    int count = 1;
    int i = 0;
    int temp = 0;
    while(i < 15)
    {
        if((count % 3 == 0 )&&(person[i] != 0))
        {
            person[i] = 0;
            i++;
            count++;
        }
        else if(count % 3 != 0)
        {
            i++;
            count++;
        }
        else if(person[i] == 0)
            i++;
        if(i == 15)
            i -= 15;
        for(int k = 0;k < 15;k++)
        {
            if(person[k] == 0)
                temp++;
            printf("%d",temp);
        }
        if(temp == 14)
            break;
        
    }
    for(int j = 0;j < 15; j++)
        if(person[j] != 0)
            printf("叛徒的序号为:%d",j);
   
    return 0;
}

感激不尽
作者: yangyuzhe    时间: 2015-2-23 10:25
有木有好心人。。。
作者: chenfanfang    时间: 2015-2-26 23:10
这题用链表好做




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2