printf("\n%12.6f%12.6f%12.6f", R[1], LS[1], LAMBDA);
的R
是浮点数的数组,LS
也是浮点数的数组,并且LAMBDA
是一个浮点变量。在C什么呢这行做:
我试图将程序转换为Java,但我无法弄清楚这行代码试图做什么(我根本没有经历过C)。
printf("\n%12.6f%12.6f%12.6f", R[1], LS[1], LAMBDA);
的R
是浮点数的数组,LS
也是浮点数的数组,并且LAMBDA
是一个浮点变量。在C什么呢这行做:
我试图将程序转换为Java,但我无法弄清楚这行代码试图做什么(我根本没有经历过C)。
它只是将这些值以指定格式以浮点数格式打印到标准输出。 更多详细信息可在printf()
找到。
printf()
函数打印到stdout(通常是控制台),并在字符串中使用了特定的变量替换语法 - 因此您所看到的是格式字符串。它分解:
\n
:换行符%12.6f
:下一个变量,
数组查找语法与Java中的相同,所以它查找R和LS中的第二个(因为从零开始的索引)元素。
我想我的问题的大部分将是...这是什么:“\ n%12.6f%12.6f%12.6f” – GlenGleGlen
添加到我的评论,因为我需要花点时间来查找确切的规格。我还将包含的链接更新为更具描述性的页面 – David
这里是一个小的测试程序,它的输出:
#include <stdio.h>
int main(int argc, char **argv) {
float R[2] = {1./7. * 10000, 2./7. * 10000};
float LS[2] = {3./7. *10000, 4/7. * 10000};
float LAMBDA = 5/7. *10000;
printf("BEFORE");
printf("\n%12.6f%12.6f%12.6f", R[1], LS[1], LAMBDA);
printf("AFTER\n");
}
前 2857.142822 5714.285645 7142.856934AFTER
所以,一个换行符,那么所有在一行中,每个数字占用12位,R [1],LS [1]和LAMBDA,打印到6位数的精度。然后,没有换行符,所以他们必须要在其他行中发生其他事情。
如果你在google上搜索,只需要'printf c manual',你需要2秒才能找到它。 –