C语言排座位问题
答案:2 悬赏:50 手机版
解决时间 2021-04-26 22:59
- 提问者网友:浪荡绅士
- 2021-04-26 00:54
C语言排座位问题
最佳答案
- 五星知识达人网友:青尢
- 2021-04-26 01:28
#include
#define N 50
#define CALL 3
int main()
{
int i,*p,callnumber,chu,h[N] = {0};
for (i = 0; i < N; i++)
{
*(h+i) = i+1;
}
p = h;
chu = 0;
callnumber = 0;
while(chu {
if (*p != 0)
{
callnumber++;
}
if (callnumber == CALL)
{
chu++;
printf("%5d",*p);
*p = 0;
callnumber = 0;
}
p++;
if (p==h+N)
{
p = h;
}
}
return 0;
}
程序如上,可以满足你要求,在你的程序基础上修改的。你逻辑有问题,如果到达数组尾部要从头输出。
另外
*p=0;
chu++;
printf("%5d",*p);
这里你前面已经赋值为0
输出肯定是0了。
#define N 50
#define CALL 3
int main()
{
int i,*p,callnumber,chu,h[N] = {0};
for (i = 0; i < N; i++)
{
*(h+i) = i+1;
}
p = h;
chu = 0;
callnumber = 0;
while(chu
if (*p != 0)
{
callnumber++;
}
if (callnumber == CALL)
{
chu++;
printf("%5d",*p);
*p = 0;
callnumber = 0;
}
p++;
if (p==h+N)
{
p = h;
}
}
return 0;
}
程序如上,可以满足你要求,在你的程序基础上修改的。你逻辑有问题,如果到达数组尾部要从头输出。
另外
*p=0;
chu++;
printf("%5d",*p);
这里你前面已经赋值为0
输出肯定是0了。
全部回答
- 1楼网友:山河有幸埋战骨
- 2021-04-26 03:02
我觉得做这个题目有几个重点,你找一下自己有没有就行了。
1、当我第一遍这50个人都报完数后,其实只有16个人报了3出去啦,然后第49个人是报1,第50个人是报2,那第一个人就接着报1,以此轮回。可以用一句if(caller==50) caller = 1;else caller++;
2、已经报过了3的就出局啦,可以用一个循环if(callnumber==3)a[k++] = 0;while(a[k]!=0){...}。
1、当我第一遍这50个人都报完数后,其实只有16个人报了3出去啦,然后第49个人是报1,第50个人是报2,那第一个人就接着报1,以此轮回。可以用一句if(caller==50) caller = 1;else caller++;
2、已经报过了3的就出局啦,可以用一个循环if(callnumber==3)a[k++] = 0;while(a[k]!=0){...}。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯