基本上我想創建每次條件滿足像時間的int x
...如何用C做以下操作?
while(CONDITION){
if(int x = 100){
//create a new int
//refrence newly created variable
}
}
然後,我想通過循環再次運行,但測試新創建的變量,而不是x的。希望這已經夠清楚了!
基本上我想創建每次條件滿足像時間的int x
...如何用C做以下操作?
while(CONDITION){
if(int x = 100){
//create a new int
//refrence newly created variable
}
}
然後,我想通過循環再次運行,但測試新創建的變量,而不是x的。希望這已經夠清楚了!
在C語言中沒有「創建int」的概念。您可以將新的值賦給如果你想在現有int
:
int x, newx;
while(CONDITION){
if(x == 100){
newx = x;
}
}
+1 OMG,看來你明白了這個問題。我不能! – karlphillip 2010-09-20 22:32:26
在C99
片段下方
for (int i = 0; i < 4; i++) {
int x;
x = i * 2;
}
的x
是新通過循環每次x
一個品牌。
在程序運行該代碼段的過程中,將會有4個不同的x
s。
你的問題很難理解,但它聽起來像你想要一個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也可以寫成++x
或x++
;爲了清晰起見,我寫了它,因爲你看起來對C來說是新手。
上面假定你有一個C99編譯器。如果編譯器僅支持C89,則必須在函數的開頭聲明x
,並用x = 100
替換int x = 100
。
你的問題並不十分清楚,但我認爲遞歸可以幫助你。
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);
}
}
你可以做類似的事情與其他動態分配,但開銷可能比遞歸更大。
您的條件表達式不是您認爲的那樣。 – pmg 2010-09-20 22:30:08
尋求幫助來解決問題,而不是步驟。 – GManNickG 2010-09-20 22:30:41
你真的應該編輯這個問題,使它更清楚你在問什麼。 – nategoose 2010-09-20 23:21:23