2015-04-21 33 views
-2

我試圖運行此代碼,但我不斷收到的:錯誤:使用未聲明的標識符

:21:20: error: use of undeclared identifier 'r' 
for(int s = h - r; s > 0;s--) 

,但我似乎無法找出原因,我發現了錯誤。有人可以幫我從這裏出去嗎?

#include <cs50.h> 
#include <stdio.h> 

int main(void) 
{ 
    int h; 
    do 
    { 
     printf("please give me a positive int between 1 and 23: "); 
     h = GetInt(); 
    } 
    while (h < 1 || h > 23); 
    //get int and store it 


    for(int r = 0; r < h; r++) 
    { 
     printf("#"); 
    } 

    for(int s = h - r; s > 0;s--) 
    { 
     printf(" "); 
    }  
} 
+1

r的範圍僅限於聲明它 –

+0

環路未申報意味着你還沒有宣佈你正在使用它的範圍變量。嘗試使用它們之前聲明變量。 – Lundin

回答

2

你最好聲明rmain開始在當前的代碼你只是爲for循環聲明r之後。

int main() { 
    int r=0, h=0; 

    // add other code here 
    // don't forget h=GetInt() 

    for(r = 0; r < h; r++) 
    { 
     printf("#"); 
    } 

    for(int s = h - r; s > 0;s--) 
    { 
     printf(" "); 
    }  
} 
+0

謝謝!這修正了錯誤。但現在我得到以下內容:c:6:10:note:初始化變量'r'以使此警告消失 int r,h;我解決了這個問題:int r = 0,h;它是否正確?或者如果我這樣做,這會弄亂其他代碼嗎? – Demi

+0

@Demi,你的代碼是正確的。 – ForceBru

相關問題