打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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<>
           if(call%3!=0&&circle[i]!=-1){
              call++;
           }else if(call%3=0){
               circle[i]=-1;
               number--;
               call++;
           }
      }
   }
   for(i=1;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<>
   {
      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<>
      if(circle[i] != -1) {
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【答疑释惑第三十五讲】c语言数组指针问题
gprof
如何用C语言画一个“心形”
c语言的一些初级算法
C语言第一个简单实例
计算机当中的函数,用C语言实现函数的定义,对简化程序非常重要
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服