首页 > 解决方案 > 当N是C的输入并且它也由输入函数定义时,如何在C中定义变量“N”类型(N将提示用户输入)

问题描述

我对编程还是很陌生,对 C 编程还是很陌生,所以如果我的问题看起来很荒谬,请原谅我。

我正在学习函数和函数调用,我正在尝试跟随讲师正在做的事情,但有一点补充。导师做了以下事情:

我在尝试着:

我正在使用的 C(c99) 有一个库 cs50.h(来自在线课程 cs50),它提供了获取整数输入的代码。经过搜索和尝试后,我已成功完成如下:

包含 cs50 库后 int N = get_int("多少咳嗽") 咳嗽 (N)

还有咳嗽(get_int(“咳嗽多少次”))

我只是想知道为什么我不能在 C 中成功使用下面的代码而不会出错。为什么不能从函数中生成 N?

我得到的错误是---使用未声明的标识符'N'

void cough(int N);
int main(void)
{
    cough(N);
}

void cough(int N)
{
    N = get_int("How many coughs?\n");
    for (int i = 0; i < N; i++)
    {
        printf("cough\n");
    }
}

感谢您阅读长篇故事并提供指导。

标签: cfunctioncompiler-errorslogiccs50

解决方案


我只是想知道为什么我不能在 C 中成功使用下面的代码而不会出错。

使用未声明的标识符“N”

因为在

int main(void)
{
    cough(N);
}

N没有在main中定义为局部变量,也不是全局变量,因此您无法编译代码

但应该在程序以提示符启动时获取,例如“咳嗽多少次?”

所以

N = get_int("How many coughs?\n");

必须移入

最后你想要这样的东西:

void cough(int N);
int main(void)
{
    cough(get_int("How many coughs?\n"));
    return 0;
}

void cough(int N)
{
    for (int i = 0; i < N; i++)
    {
        printf("cough\n");
    }
}

请注意,您printf会打印一个常量字符串,因此您可以将其替换puts("cough");为更快一些,因为printf在这种情况下搜索“%”一无所获


推荐阅读