C 在使用数组和;嵌套For循环

C 在使用数组和;嵌套For循环,c,arrays,loops,for-loop,nested-loops,C,Arrays,Loops,For Loop,Nested Loops,我在用KN King的书自学C 我已经阅读了作者提供的示例,并在VisualStudio中添加了我自己的注释 我得到了下面程序中包含的循环的“大图”,但是一些细节在我身上丢失了 我希望你能告诉我下面图片中红色圆圈的声明的作用?它在干什么 图1-完整程序: 图2-底部两个回路被切断后,显示预期结果良好: 在第一个循环的括号中,红色的语句似乎没有必要。但是当我删除它时,我得到一个程序,它不能正常工作。所以它必须系在它下面的两个环中的一个上。我摸不着头脑它到底是干什么的 作者在下面的粗体文本中提到

我在用KN King的书自学C

我已经阅读了作者提供的示例,并在VisualStudio中添加了我自己的注释

我得到了下面程序中包含的循环的“大图”,但是一些细节在我身上丢失了

我希望你能告诉我下面图片中红色圆圈的声明的作用?它在干什么

图1-完整程序:

图2-底部两个回路被切断后,显示预期结果良好:

在第一个循环的括号中,红色的语句似乎没有必要。但是当我删除它时,我得到一个程序,它不能正常工作。所以它必须系在它下面的两个环中的一个上。我摸不着头脑它到底是干什么的

作者在下面的粗体文本中提到了目的,但他并没有100%明确地说明发生了什么。这很奇怪,因为红色的语句处理的是一个包含初始余额的数组,但在循环中,它包含在处理打印最上面一行的利率标签中

作者说:

第二行有点棘手,因为它的值取决于第一行中的数字。我们的解决方案是在计算时将第一行存储在数组中,然后使用数组中的值计算第二行

任何帮助都将不胜感激

我包括了书中的文本和下面的源代码

计算兴趣

我们的程序打印了一张表格,显示了在一段时间内以不同利率投资的100美元的价值。用户将输入利率和投资年数。该表将以一年一次的间隔显示货币的价值——以该利率和接下来的四个更高的利率计算——假设利率是每年复利一次。以下是使用该程序的会话的外观:

输入利率:6输入年数:5

显然,我们可以使用For语句打印第一行

第二行有点棘手,因为它的值取决于第一行中的数字。我们的解决方案是在计算时将第一行存储在数组中,然后使用数组中的值计算第二行

当然,可以对第三行和以后的行重复此过程

我们将得到两个For语句,一个嵌套在另一个中:-外循环将从1计数到用户请求的年数-内循环将利率从最低值增加到最高值

注意使用NUM_速率控制两个For循环。如果我们以后更改名为value的数组的大小,循环将自动调整


#包括
#定义NUM_RATES(sizeof(value)/sizeof(value[0])/*NUM_RATES是一个查找数组长度的宏
以字节为单位的数组大小(值的大小)除以每个元素的大小(sizeof(值[0]))*/
#定义初始余额100.00
main()
{
int low_rate;/*用户输入---最低利率*/
int num_years;/*用户输入---年数*/
int i;
国际年;
浮点值[5];/*请记住,括号中的数字表示元素的数量——在本例中,5年时间线中的每个元素1*/
printf(“输入利率:”);
扫描频率(“%d”和低扫描频率);
printf(“输入年份:”);
扫描时间(“%d”年和“num”年);
printf(“\nYears”);/*此语句打印出图表左侧“年”列的标签*/
/*此循环打印顶部利率行的标签。就在“年”旁边*/
对于(i=0;i
value[i] = INITIAL_BALANCE;
将值数组中每个元素的值设置为常量值(即100.00)。否则,未初始化数组中的值可能为0或随机/垃圾值,具体取决于编译器


请参阅更新的输出。注意main()函数声明之前添加的关键字int,以及形式参数argc和argc。尽管您可以在网上找到许多资源,如。

欢迎使用堆栈溢出:-)你的问题离题了。吉姆,请看我一点也不觉得离题。你能解释一下你为什么这么想吗?这是一个C问题,也是一个具体的问题。在第39行,数组
value
的字段(float)被初始化。
value
用于嵌套循环(第57行)。它正在做它看起来正在做的事情:为
value
的元素指定一个值。请注意,
main
的两个标准原型是
intmain(void)
intmain(intargc,char**argv)
(当然是变量名
argcvalue[i] = INITIAL_BALANCE;