2010-09-20 26 views
-4

基本上我想创建每次条件满足像时间的int x ...如何用C做以下操作?

while(CONDITION){ 
    if(int x = 100){ 
     //create a new int 
     //refrence newly created variable 
     } 
    } 

然后,我想通过循环再次运行,但测试新创建的变量,而不是x的。希望这已经够清楚了!

+3

您的条件表达式不是您认为的那样。 – pmg 2010-09-20 22:30:08

+3

寻求帮助来解决问题,而不是步骤。 – GManNickG 2010-09-20 22:30:41

+2

你真的应该编辑这个问题,使它更清楚你在问什么。 – nategoose 2010-09-20 23:21:23

回答

2

C语言中没有“创建int”的概念。您可以将新的值赋给如果你想在现有int

int x, newx; 
while(CONDITION){ 
    if(x == 100){ 
     newx = x; 
    } 
} 
+0

+1 OMG,看来你明白了这个问题。我不能! – karlphillip 2010-09-20 22:32:26

2

C99片段下方

for (int i = 0; i < 4; i++) { 
    int x; 
    x = i * 2; 
} 

x是新通过循环每次x一个品牌。
在程序运行该代码段的过程中,将会有4个不同的x s。

0

你的问题很难理解,但它听起来像你想要一个for循环。例如。

for (int x = 100; CONDITION; /* do something to x here */) { 
    /* use x */ 
} 

这将在100开始x,并继续循环,同时CONDITION是真实的。根据您将/* do something to x here */替换为,循环中的值x每次都会更改。举一个具体的例子:

for (int x = 100; x < 200; x = x + 1) { 
    printf("%d", x); 
} 

将打印100到199(含)之间的所有数字。请注意0​​也可以写成++xx++;为了清晰起见,我写了它,因为你看起来对C来说是新手。

上面假定你有一个C99编译器。如果编译器仅支持C89,则必须在函数的开头声明x,并用x = 100替换int x = 100

0

你的问题并不十分清楚,但我认为递归可以帮助你。

void do_it(void) { 
    if (CONDITION) { 
     int X = something_having_to_do_with_condtion(CONDITION); // the code you had 
                // for initializing X made no sense 
     do_it(void); // recursive call 

     process_x(X); 
    } 
} 

你可以做类似的事情与其他动态分配,但开销可能比递归更大。