c语言报数问题程序,C语言有关问题,关于循环报数

C语言问题,关于循环报数

#include

main(){

int circle[17]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};

int call;

int number;

int i;

number=17;

call=1;

while(number>0)

{

for(i=1;i<=17;i++){

if(call%3!=0&&circle[i]!=-1){

call++;

}else if(call%3=0){

circle[i]=-1;

number--;

call++;

}

}

}

for(i=1;i<=17;i++){

while(circle[i]!=-1){

printf("the num is %d",i);

}

}

system("pause");

}

编译失败,显示错误提示是需要逻辑0或非0在main函数中,求解释

------解决方案--------------------

int circle[17]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};

int call;

int number;

int i=0;

number=16;//出队次数

call=1;//出队循环变量

while(number>0)

{

if((circle[i]!=-1))//当前元素未出队

{

if((call%3) == 0)//当前到循环点

{

circle[i]=-1;

call++;

number--;

}

else

{

call++;

}

}

i++;

if(i>=17)

i%=17;

}

for(i=0;i<17;i++)

{

if(circle[i]!=-1)

{

printf("the num is %d\n",i);

}

}

system("pause");

更改了你的求解逻辑

------解决方案--------------------

引用:我照着改了···还是有问题····

原题是17,编号0到16个人循环报数,从1开始,报到3的倍数的人离开知道剩下最后一个人····问这个人原来的编号是多少···答案是10

我改成这样的代码:

#include

main(){

int circle[17]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}……

你代码有点问题, 帮你改了一下:

#include

int main()

{

int circle[17]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};

int call;

int number;

int i;

number=16;

call=1;

while(number>0)

{

for(i=0;i<=16;i++){

if(circle[i] != -1) {

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值