标题:[求助]怎样用C语言编程-----地主杀奴隶???(输出唯一存活的奴隶编号)请 ...
只看楼主
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
得分:0 
呵呵 你是怎么理解我的程序

羊肉串 葡萄干 哈密瓜!!
2007-07-06 15:43
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
得分:0 

你那这个 运行一下
#include<stdio.h>
main()
{
int i,j=1,k=703,a[37]={0},temp;
while(k>0)
for(i=1;i<38;i++)
if(a[i-1]==0&&j%5==0)
{ printf("%d - ",k);
temp=i;
k=k-i; printf("%d = %d----->杀死 %d\n",i,k,i);
a[i-1]=1;
j=1;
}
else if(a[i-1]==0)
j++;
printf("%d",temp);
}

[此贴子已经被作者于2007-7-6 16:03:03编辑过]


羊肉串 葡萄干 哈密瓜!!
2007-07-06 15:47
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
得分:0 
以下是引用SpaceC在2007-7-6 14:58:56的发言:

如果奴隶的数量是5个,你用你的方法试试,结果好像不对吧?

怀疑你的算法的正确性

下面是5个的 当然 程序的变量也要相应的修改 但是算法不变
你自己算一下 看看杀的顺序对不对 最后一个死的就是活这的



羊肉串 葡萄干 哈密瓜!!
2007-07-06 15:54
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
得分:0 
呵呵程序 确实有错 但不是算法的 我最后输出的变量打错了 我已经在17 和22楼 改过来了
加了
temp变量 temp=i;语句 修改printf("%d",temp);

本来看你们又是链表版又是 数组办的 我想写个变量版的 可是一两个变量右完不成 变量太多又不好看 所以就用了这个办法了

羊肉串 葡萄干 哈密瓜!!
2007-07-06 16:06
SpaceC
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2007-6-20
得分:0 
以下是引用mp3aaa在2007-7-6 15:43:51的发言:
呵呵 你是怎么理解我的程序

你的算法不错,学习了

更改一下我前面说的话,你的算法没问题,是程序有点小问题


2007-07-06 16:34
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
得分:0 

恩当时 发上来的时候太急 没注意看 后来在发现的 不过已经改过来了


羊肉串 葡萄干 哈密瓜!!
2007-07-06 16:37
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
得分:0 
学习了,谢谢.
2007-07-07 15:03
XSYCF
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-9-11
得分:0 
#include<stdio.h>
#define max 53
main()
{
    int a[53],i,j=53,m=0,k,q;
    for(i=1;i<54;i++)
        a[i-1]=i;                        /*将数组内量依次辅值a[0]=1,a[1]=2……*/
        i=0;
    /*初始化部分*/
    for(k=1;k<53 ;k++)                    /*53个奴隶要杀52个*/
    {    for(m=0;m<4;m++)                /*数数*/
    {i++;
    if(i>=j)
        i=i-j;}                            /*数到头了就从第一个开始数,循环  */
    /*数数部分*/
    q=i;
    while(q<j)                                /*数完了要杀一个,被杀的下面往上移一位顶替他的位置,依次移*/
    {a[q]=a[q+1];
    q++;}
    j--;                /*死一个J-1*/
    }
    /*移位部分,活着的要顶替死的位置*/
    printf("活着的奴隶是第%d位",a[0]);
}

 /*J为活着的奴隶总数,杀一个J-1*/
2008-09-11 16:49
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
得分:0 
时隔多年,故地重游,感觉俺还是新手……
2011-05-29 22:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-152509-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.233236 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved