2017-03-01 64 views
0

我没有权限使用超过25行的函数。 我的一个功能只有26行,所以我想简化它。在一段时间内使用增量变量

char *name(int big, int small, int nb, char *tab) 
{ 
    while (big < nb) 
    { 
     small = 1; 
     while (small < nb) 
     { 
      .... 
      printf("here are the other lines\n"); 
      .... 
      small++; 
     } 
    big++; 
    } 
    return (tab); 
} 

大和小,在1 被初始化我怎么能包括在while条件的小++和大++?

我试过while (big++ && big < nb),为什么不行? 我刚刚找到的唯一方法是while ((big = big + 1) && big < nb)

有没有人可以解释为什么第一种方式不起作用,如果您有其他解决方案?

感谢

+1

也许'while(big ++

+2

如果你只是在外层循环的每次迭代中改变它的值,接收'small'作为参数的意义是什么? – StoryTeller

+0

内循环可以很容易地用'for'循环取代:'for(int small = 1; small

回答

2

你可能想(不是你的解决方案少两行)这样的:

char *name(int big, int nb, char *tab) 
{ 
    while (big++ < nb) 
    { 
     int small = 1; 
     while (small++ < nb) 
     { 
      .... 
      printf("here are the other lines\n"); 
      .... 
     } 
    } 
    return tab; 
} 

免责声明:这是未经测试的代码。

while (big++ && big < nb)不起作用,因为它根本就不是一回事:

while (big < nb) 
{ 
    ... 
    big++; 
} 

随着while (big++ && big < nb)你增加big之前考验。在原始代码big后加的测试。

另外,while ((big = big + 1) && big < nb)while (big++ < nb)是相同的东西。

+0

对于之前或之后的增量,我将值更改为0而不是1来尝试,但是我的程序没有进入这个时间段。 别的,你的代码回答我的问题,我没有想到这种方式! 谢谢 – f42