2010-09-20 53 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); 
    } 
} 

你可以做類似的事情與其他動態分配,但開銷可能比遞歸更大。