Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 错误:使用未声明的标识符_C_Cs50 - Fatal编程技术网

C 错误:使用未声明的标识符

C 错误:使用未声明的标识符,c,cs50,C,Cs50,我正在尝试运行此代码,但我一直得到: :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 posi

我正在尝试运行此代码,但我一直得到:

: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(" ");
    }      
}
#包括
#包括
内部主(空)
{
int-h;
做
{
printf(“请给我一个介于1和23之间的正整数:”);
h=GetInt();
}
而(h<1 | | h>23);
//获取int并存储它
对于(int r=0;r0;s--)
{
printf(“”);
}      
}

您最好在
main
开始后立即声明
r
,因为在当前代码中,您仅为
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(" ");
    }      
}
intmain(){
int r=0,h=0;
//在此处添加其他代码
//别忘了h=GetInt()
对于(r=0;r0;s--)
{
printf(“”);
}      
}

r的作用域仅限于循环,它是declaredunclared表示您尚未在使用它的作用域中声明变量。尝试在使用变量之前声明它们。谢谢!这修复了错误。但是现在我得到了如下结果:c:6:10:注意:初始化变量'r'以使警告int r,h静音;我修正了它:int r=0,h;这是正确的吗?如果我这样做的话,会不会把其他代码弄乱?