首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

!请高手帮帮忙解读一下程序!

2012-03-11 
求救!!!请高手帮帮忙解读一下程序!!!!!!!!我不太同C语言,但这是我的实习作业,老师会提问这程序的主要的内

求救!!!请高手帮帮忙解读一下程序!!!!!!!!
我不太同C语言,但这是我的实习作业,老师会提问这程序的
主要的内容是什么?
什么意思?
请高手帮忙解读,给予我中文解析.
还有,顺便说说IsChecked     ,const     是什么意思?
  for   (i=0;   i <2097152;   ++i)     中的2097152,怎么要这么大的范围?

#include <stdio.h>    
static   char   *WEEK[7]= "Sun. ",   "Mon. ",   "Tues. ",   "Wedn. ",   "Thur. ",   "Fri. ",   "Sat. "};  

int   IsChecked(const   int   pSon[])
  {int   i,   j;  
    for   (i=0;   i <7;   ++i)
      {for   (j=0;   j <7&&pSon[j]!=i;   ++j);  
        if   (j   ==   7)   return   0;  
      }  
      return   1;  
  }  

void   main()  
{int   t=0,   j,   person[7];  
  long   i;  
  printf( "ZHAO,   QIAN,   SUN,   LI,   ZHOU,   WU,   CHEN\n\n ");  
  for   (i=0;   i <2097152;   ++i)
    {for   (j=0;   j <7;   ++j)
        {person[j]   =   (i> > (3*j))   &   7L;  
        }  
    if   (!(person[0]==2   ||   person[0]==4))continue;  
    else   if   (!(person[1]==1   ||   person[1]==6))continue;  
    else   if   (!(person[2]==3   ||   person[2]==0))continue;  
    else   if   (!(person[3]==5))continue;  
    else   if   (!(person[4]==1   ||   person[4]==4   ||   person[4]==6))continue;  
    else   if   (!(person[5]==2   ||   person[5]==5))continue;  
    else   if   (!(person[6]==3   ||   person[6]==6   ||   person[6]==0))continue;  
    else   if   (!IsChecked(person))   continue;  
    for   (j=0;   j <7;   ++j)
        {printf( "%s   ",   WEEK[person[j]]);  
        }  
      printf( "\n ");  
      ++t;  
      }  
    printf( "\n%d   Methods!\n ",   t);  
    getch();  
}  


        最后,真诚感谢高手的指导!谢谢!!!!

[解决办法]
IsChecked是每个人选择的休息日,const是定义一个常量
大范围是为了找出可能的各种情况,如果范围不够就找不到可能的方案,你可以把那个数改小点试试就知道了
[解决办法]
2097152的二进制是10 0000 0000 0000 0000 0000循环只有7次而已。那个for就是个初始化preson数组用的.
int IsChecked(const int pSon[])这里const表示在这个函数里pSon[]的值无法修改,是用来保护参数。

热点排行