标题:大家来看看着个程序,有没有跟简单的方法
只看楼主
初心者1号
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-3-31
 问题点数:0 回复次数:4 
大家来看看着个程序,有没有跟简单的方法
#include <stdio.h>
#define N 50
void main()
{
int i,m,n,k,ary[N],s,d,*p;
p=ary;
printf("请输入人数:");
scanf("%d",&n);
printf("请输入从第几号开始:");
scanf("%d",&d);
printf("请输入数到几:");
scanf("%d",&s);
/*if(i=0)
*(p+i)=5;*/
for(i=0;i<n;i++)
*(p+i)=1;
i=0;
m=0;
k=0;
while(m<n-1)
{
if(*(p+i+d)!=0) //着里会不会有下标越界的错误呢?比如i+d>n的情况。
k++;
if(k==s)
{
*(p+i)=0;
k=0;
m++;
}
i++;
i=i%n;
}
while(*p==0)
p++;
printf("编号%d为的学员被当选为班长。\n",*p);

}
2007-04-11 22:22
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
约瑟复环?

倚天照海花无数,流水高山心自知。
2007-04-11 22:36
初心者1号
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-3-31
得分:0 
这个程序是要将N个人围成1圈,顺序编号,从第(自己定)个人报数(从1报到几也是自己定,比如3)凡是报到3的人就出去
然后下一个人重新开始,最后留下的就被选为班长。
2007-04-11 22:51
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
得分:0 
肯定有啊!
你要对d 有个限制啊~``

 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-04-11 22:54
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
约瑟复环

这样选班长也真搞笑,呵呵.
在论坛里搜索一下这个标题.看看别人是怎么做的吧.

倚天照海花无数,流水高山心自知。
2007-04-11 22:54



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




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

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