练习2-2 在不使用运算符&&或者||的条件下编写一个与上面的for循环语句等价的循环语句。

 1 /*for(i = 0; i < lim - 1 && ((c = getchar()) != '\n' && c != EOF; ++i)
 2 s[i] = c*/
 3 
 4 
 5 while(i < lim - 1)
 6 {
 7     while((c = getchar()) != EOF)
 8     {
 9         while((c = getchar() != '\n')
10               ++i;
11               s[i] = c;
12     }
13 }

用while来做!

 

书上答案

 1 enum loop {NO, YES};
 2 enum loop okloop = YES;
 3 i = 0;
 4 while(okloop == YES)
 5 if(i >= lim - 1)    /* outside of valid range ?*/
 6 okloop = NO;
 7 else if ((c = getchar()) == '\n')
 8     okloop = NO;
 9 else if(c == EOF)/*end of file ?*/
10 okloop = NO;
11 else{s[i] = c
12     ++i
13 }

目测差不多!

还是我的答案不行?

posted @ 2013-10-29 16:11  _Jango  阅读(722)  评论(0编辑  收藏  举报