Can';t让温度表在java中工作
我已经试着让这个程序运行好几个小时了。我成功地将华氏温度转换成摄氏温度,但就我的一生而言,我不能将摄氏温度转换成华氏温度。我打算在学校重新开学的时候问我的老师,但现在我希望能得到一些帮助。这是我的密码Can';t让温度表在java中工作,java,Java,我已经试着让这个程序运行好几个小时了。我成功地将华氏温度转换成摄氏温度,但就我的一生而言,我不能将摄氏温度转换成华氏温度。我打算在学校重新开学的时候问我的老师,但现在我希望能得到一些帮助。这是我的密码 import java.util.Scanner; public class TempConvert { public static void main(String[] args) { //variables double number;
import java.util.Scanner;
public class TempConvert {
public static void main(String[] args) {
//variables
double number;
int maxFahrenheit = 52;
int maxCelsius = 20;
Scanner keyboard = new Scanner(System.in);
//user input
System.out.println("Please enter 1 to convert from Fahrenheit to" +
" Celsius");
System.out.println("Please enter 2 to convert from Celsius to" +
" Fahrenheit");
number = keyboard.nextDouble();
//if else
if (number == 1) {
System.out.println("Celsius\t\tFahrenheit");
System.out.println("---------------------------");
int i;
double c;
for (i = 0, c = 0; i <= maxCelsius; i++, c++) {
System.out.println(i + "\t\t" + 9 * (i + 32) / 5);
} //end for
} //end if
else if (number == 2) {
System.out.println("Fahrenheit\t\tCelsius");
System.out.println("-----------------------------------");
int i;
double f;
for (i = 32, f = 32; i <= maxFahrenheit; i++, f++) {
System.out.println(i + "\t\t" + 5 * (f - 32) / 9);
} //end for
} //end else if
else {
System.out.println("Entry is invalid");
} //end else
} //end main
} //end TempConvert
import java.util.Scanner;
公共类临时转换{
公共静态void main(字符串[]args){
//变数
双数;
int最大华氏温度=52;
int最大摄氏度=20;
扫描仪键盘=新扫描仪(System.in);
//用户输入
System.out.println(“请输入1以将华氏温度转换为”+
“摄氏度”);
System.out.println(“请输入2以将摄氏度转换为”+
“华氏度”);
数字=键盘.nextDouble();
//否则
如果(数字==1){
System.out.println(“摄氏\t\tFahrenheit”);
System.out.println(“-------------------------------”;
int i;
双c;
对于(i=0,c=0;i您需要使用DecimalFormat df=new DecimalFormat(“#.####”)
看,我改变了你的代码如下:
public static void main(String[] args) {
//variables
double number;
int maxFahrenheit = 52;
int maxCelsius = 20;
Scanner keyboard = new Scanner(System.in);
//user input
System.out.println("Please enter 1 to convert from Fahrenheit to" +
" Celsius");
System.out.println("Please enter 2 to convert from Celsius to" +
" Fahrenheit");
number = keyboard.nextDouble();
//if else
if(number == 1) {
System.out.println("Celsius\t\tFahrenheit");
System.out.println("---------------------------");
int i;
double c;
for(i = 0, c = 0; i <= maxCelsius; i++, c++) {
System.out.println(i + "\t\t" + 9 * (i + 32) / 5);
}//end for
}//end if
else if(number ==2) {
System.out.println("Fahrenheit\t\tCelsius");
System.out.println("-----------------------------------");
int i;
double f;
DecimalFormat df = new DecimalFormat("#.####");
for(i = 32, f = 32; i <= maxFahrenheit; i++, f++) {
System.out.println(i + "\t\t" + df.format(5 * (f - 32) / 9));
}//end for
}//end else if
else {
System.out.println("Entry is invalid");
}//end else
}//end main
}//end TempConvert
publicstaticvoidmain(字符串[]args){
//变数
双数;
int最大华氏温度=52;
int最大摄氏度=20;
扫描仪键盘=新扫描仪(System.in);
//用户输入
System.out.println(“请输入1以将华氏温度转换为”+
“摄氏度”);
System.out.println(“请输入2以将摄氏度转换为”+
“华氏度”);
数字=键盘.nextDouble();
//否则
如果(数字==1){
System.out.println(“摄氏\t\tFahrenheit”);
System.out.println(“-------------------------------”;
int i;
双c;
对于(i=0,c=0;i您应该检查编译器警告。未使用局部变量c的值。将摄氏度转换为法伦海特的公式是1.8*t_c+32
9/5=1.8
但9*32/5=57,6
。因此您使用的1.8*t_c+57.6
,这是不正确的。要快速回答,请使用Thx。唯一的是,我们还没有在课堂上学到这些东西。我想我可能只是做了一些愚蠢的错误,这很容易指出。我现在真正知道的是循环和if语句。没关系,朋友=)你在学习,所以你不应该知道这一点,是的,我们可以对这个程序进行很多更改,使其更好,但要继续下去=)世界是你的,继续阅读下去=)如果这个问题解决了你的答案,你能给我一些分数吗?请尽管如此,我仍在寻找答案。我尝试了你所说的,反对语法。对于这个问题,一定有一个不同的解决方案,更符合我们在课堂上所学的:/我明白了,是的,我想和你分享这个:There是编程中的manny解决方案,重点是什么更好,为什么=D,是的,出于某种原因,我的代码现在只是将0.032而不是32添加到循环中的每个值。这让我有点疯狂。有什么原因吗???