我需要创建一个程序,输出一个格式化的两列列表,将Celsius转换为Fahrenheit,结束于与用户输入的起始温度成40度的温度。它应该看起来像这样:(除非它从用户输入的任何数字中计算出来)
我已经在这工作了几个小时,我不知道如何解决它。不仅摄氏度从1开始(我认为(cel = 1;)位),但我不知道为什么华氏温度计算不正确。
这是我目前的来源:
import java.util.Scanner;
public class TempTable {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
float cel;
double column;
double Fahrenheit;
final double C_2_F = (9.0 / 5.0);
System.out.println("Enter your city's temperature in Celsius.");
cel = kb.nextFloat();
System.out.println("Here is the conversion from " + cel);
System.out.printf("%2s%12s%n", "Celcius", "Fahrenheit");
for (cel = 1; cel <= 10; cel++) {
column = cel;
for (Fahrenheit = 1; Fahrenheit <= 10; Fahrenheit++) {
Fahrenheit = cel * C_2_F + 32;
System.out.printf("%2.0f%12.0f%n", cel, Fahrenheit);
}
}
kb.close();
}
}
答案 0 :(得分:0)
修复你的循环以不重置&#39;华氏温度&#39;每一次都通过。
for ( Fahrenheit = 1; Fahrenheit <=10; Fahrenheit++) {
Fahrenheit = cel * C_2_F + 32;
System.out.printf("%2.0f%12.0f%n",cel,Fahrenheit);
}
要
for ( Fahrenheit = 1; Fahrenheit <=10; Fahrenheit++) {
double f = cel * C_2_F + 32;
System.out.printf("%2.0f%12.0f%n",cel,f);
}
将是一种方式。同时重命名华氏&#39;华氏温度&#39;到华氏温度&#39;华氏温度&#39;
实际上,这只是一个问题。自从&#39; cel&#39;以来,它将打印10次相同的值。和&#39; C_2_F&#39;在循环中不要改变......