c - 当N是C的输入并且它也由输入函数定义时,如何在C中定义变量“N”类型(N将提示用户输入)
问题描述
我对编程还是很陌生,对 C 编程还是很陌生,所以如果我的问题看起来很荒谬,请原谅我。
我正在学习函数和函数调用,我正在尝试跟随讲师正在做的事情,但有一点补充。导师做了以下事情:
- 导师定义了一个函数咳嗽——(void咳嗽(int N))
- 仅使用一行代码在 main 中调用函数
- 该程序在屏幕上打印出硬编码的咳嗽次数,即咳嗽(3)将打印咳嗽 3 次。
我在尝试着:
- 定义一个函数咳嗽——(void咳嗽(int))
- 仅使用一行代码调用 main 中的函数
- 程序应在屏幕上打印 N 次咳嗽,但应在程序启动时得到提示,例如“咳嗽多少次?”
我正在使用的 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");
}
}
感谢您阅读长篇故事并提供指导。
解决方案
我只是想知道为什么我不能在 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
在这种情况下搜索“%”一无所获
推荐阅读
- kubernetes - kubernetes api 服务器显示在 prometheus (kube-state-metrics) --"forbidden: User \"system:anonymous\" cannot get path \"/metrics\"",
- laravel - 在laravel中将Excel导入数据库?
- php - Laravel 模型在创建后出现错误的整数 - 但在其他地方很好
- html - svg背景垂直重复的间隙
- javascript - 没有 HTML 的 Javascript 侧边栏 onClick 事件
- python - 在 python 中编写传递命名参数的函数
- go - 将包含 *byte 的结构传递给 Syscall 并在执行后读取其内容
- php - 无法从另一个 php 文件中引用的 php 文件中引用图像
- c++ - c++ - 归档存在于不同目录中的文件并访问单个文件
- smartsheet-api - 是否可以使用 Smartsheet Python SDK 创建 MULTI_PICKLIST?