首页 > 解决方案 > 为什么我的函数中的计数变量不增加?

问题描述

我的函数 notFull(classc,reservations) 似乎根本没有返回 0

if(notFull(classc,reservations)==0 )
     {
        printf("%s class is FULL.Would you like %s class\n?", classc==1? "First":"Economy",classc==2? "First":"Economy");
        scanf(" %c",&ans);

        if(ans=='Y'||ans=='y')
           classc==1? classc=2:classc==2;
        if(ans=='n'||ans=='N')
           {
              printf("Next flight is in 3 hours\n");
              return 0;
           }

似乎我的函数 notFull 中的计数变量似乎没有增加。因此,它总是返回 0。

    int notFull(int classp,int reservationsp[])



    {
        int start,end,i=0,count=0;

       if(classp==1)
       {
           start=1,end=5;
       }
       else if(classp==2)
       {
           start=6,end=10;
       }

    for(i=start;i<=end;i++)
    { 
       if(reservationsp[i]==1)
       ++count;

      printf("%d\n",count);   //To check if count actually incremented                  


      if(count==5)
      return 0;
      else
      return 1;

   }

}

标签: cfunction

解决方案


看起来 count 必须增加,否则它永远不会等于 5,以导致零返回。但是,你总是从第一次通过循环返回,所以你的函数肯定没有按照你的想法做。三元的表情也完全糊涂了。上课要多加注意,这个作业需要很多帮助。


推荐阅读