#include <stdio.h>
void graph(int count);
int main() {
int value;
value = 2;
while (value <= 64) {
graph(value);
printf("Value is %d\n", value);
value = value * 2;
}
return (0);
}
void graph(int count) {
int x;
for (x = 0; x < count; x = x + 1)
putchar('*');
putchar('\n');
}
以上是我的代码。我正在学习C,作为初学者,我发现很难理解代码。我的问题是:
答案 0 :(得分:4)
int count
做什么?是用户定义还是内置系统?
int count
指定函数graph
采用单个参数,类型为int
。这是C语言的一部分。
为什么我们在graph()中声明了值?它是否像我们提供的输入一样?
我不确定你的意思。输入参数count
用于指定运行for
循环的次数。 int x
是int
类型的变量,只存在(范围限定)函数graph
。
这意味着count
内的graph()
将具有您的变量value
在调用graph()
的行中具有的值:
graph(value);
由于行, value
从2开始
value = 2;
并且每次通过while
循环加倍,直到它为64行
while (value <= 64) // Checks whether or not to end the while loop
和
value = value * 2; // Doubles the previous value
在图形()或任何地方,没有计数的初始值,但为什么使用它和什么?
x
在for
循环中初始化。这是它获得初始值的地方。如果你看一下
for(x=0;x<count;x=x+1)
部分
x=0
初始化for
循环。通常,循环计数器将在for
语句的该部分中获得其初始值。
答案 1 :(得分:2)
int count有什么作用?是用户定义还是内置系统?
int
是由C语言定义的关键字(你甚至可以看到语法高亮显示器用蓝色绘制它,而用户定义的东西是黑色的。它用于声明变量的类型。当你做
int x;
您正在声明一个包含整数值的新变量。 Yuo可以使用其名称获取变量的值,您可以使用=
运算符为变量赋值新值
x = 10
或使用++
运算符
x++ //this adds one to the value of x
为什么我们在graph()中声明了值?它是否像我们提供的输入一样?
graph是一个函数/子例程。括号内定义的变量是子程序的参数。
在图形()或任何地方,没有计数的初始值,但为什么使用它和什么?
SUbroutine参数由调用子例程的任何人初始化。在这种情况下,graph(value)
,在主函数中。)
答案 2 :(得分:2)
一般C函数定义为:
return_type function_name(parameter_1, parameter_2, ...)
{
local_variables
function_logic
return return_value
}
将参数传递给您的函数,以便在调用graph(value)时,count设置为value。
基本上,你的循环是调用graph(2),graph(4),graph(8)......它将count设置为2,4,8 ......
for循环语法是:
for(initialization; condition; increment) {
loop_logic
}
循环体重复执行,直到条件不再为真 所以x初始化为零,递增1(x ++与x = x + 1相同),直到条件为x大于或等于count。
基本上,这意味着您的图表功能正在打印出来&#39; count&#39;数字*,后跟换行符,将光标移动到下一行。
这是您程序的输出。
Value is 2
**
Value is 4
****
Value is 8
********
等等。
我会建议在深入研究更复杂的代码之前查阅一些通用编程教程。
答案 3 :(得分:1)
int count有什么作用?
在第
行void graph(int count)
int count
将count
声明为参数或类型为graph
的函数int
的参数。这意味着调用 graph
函数的任何代码都必须提供整数参数。您可以在通话中的main
功能
graph(value);
调用value
函数时,count
中的值会复制到参数graph
。
是用户定义还是内置系统?
在这种情况下,它是用户定义的。
为什么我们在graph()中声明了值?它是否像我们提供的输入一样? 并且在graph()或任何地方,没有计数的初始值,但为什么使用它和什么?
变量x
用于控制以下循环:
for(x=0;x<count;x=x+1)
putchar('*');
这显示了循环元素的执行顺序:
for ( /* 1 */ x = 0; /* 2 */ x < count; /* 4 */ x = x + 1 )
/* 3 */ putchar('*');
逻辑基本如下:
x
中存储的值与count
中传递给函数的值进行比较。如果x
小于count
,请转到步骤3,否则请转到步骤5. *
字符写入标准输出。整个程序绘制*
个字符行,每行的长度是前一行的两倍:
**
Value is 2
****
Value is 4
********
Value is 8
****************
Value is 16
...
graph
函数负责绘制*
个字符的每一行。 main
调用graph
,其中包含要绘制的字符数(graph(value)
),从2个字符开始,并将该数字加倍,直到它大于64.然后调用{printf
1}}显示value
变量的值(比如 快三倍)。
答案 4 :(得分:0)
1.int count从值获取参数(它是一个FUNCTION CALL-在第一次运行时值为2) - 这是用户定义的。你可以写任何名字,如(int count / int xyz /...)
2.Yeah!它就像输入一样。在这里,我们将“值”术语赋予“2”。
3.这2将被复制到计数中。并继续执行图函数内部的函数程序,如 - ..printing'*'iterratively。
..计数的初始值只不过是你为“价值”这个词分配的值。它是2 如果您将值项分配给4,则count将取值4
Google并了解c。
中的基本函数调用---希望你得到一些澄清---