printf("\n%12.6f%12.6f%12.6f", R[1], LS[1], LAMBDA);
R
是一个浮点数组,LS
也是一个浮点数组,LAMBDA
是一个浮点数变量。
我正在尝试将程序转换为Java,但我无法弄清楚这条线正在尝试做什么(我根本没有C经验)。
答案 0 :(得分:1)
printf()
函数打印到stdout,它通常是控制台,并在字符串中使用特定的变量替换语法 - 您所看到的是格式字符串。打破它:
\n
:newline %12.6f
:下一个变量,
数组查找语法与Java相同,因此它在R和LS中查找第二个(因为从零开始索引)元素。
答案 1 :(得分:0)
它只是以指定格式的浮点数格式将这些值打印到stdout。
有关详细信息,请访问printf()
。
答案 2 :(得分:0)
这是一个很小的测试程序及其输出:
#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位精度。然后,没有新行,所以他们必须在行后发生其他事情。