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秒才能找到它。 –