Я пытаюсь преобразовать температуру массива в цельсию, но они продолжают выводить как 16.0, как я могу преобразовать все значения массива и распечатать их отдельно? Все они в порядке в зависимости от месяца, значения массива необходимо преобразовать, а затем распечатать в соответствии с месяцем.Печать массивов после изменения их значения
Ниже мой код:
import java.util.Scanner;
class AnnualClimate
{
public static void main(String[] args)
{
// Declare and intialize variables - programmer to provide initial values
Scanner in = new Scanner(System.in);
String city = "Daytona Beach";
String state = "Florida";
int o = 0;
double celsius = 0;
int index = 0;
String month[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
double temperature[] = { 58.4, 60.0, 64.7, 68.9, 74.8, 79.7, 81.7, 81.5, 79.9, 74.0, 67.0, 60.8 };
double precipitation[] = { 3.1, 2.7, 3.8, 2.5, 3.3, 5.7, 5.2, 6.1, 6.6, 4.5, 3.0, 2.7 };
String tempLabel = "F"; // initialize to F
String precipLabel = "inch"; // initialize to inch
// INPUT - ask user for temp and preciptation scale choice
System.out.print("Choose the temperature scale (F = Fahrenheit, C = Celsius): ");
String tempChoice = in.next();
System.out.print("Choose the precipitation scale (i = inches, c = centimeteres): ");
String precipChoice = in.next();
// PROCESSING - convert from F to C and in to cm based on user's choices
// remember 5/9 = 0, 5.0/9 = .5555
if (tempChoice.equalsIgnoreCase("C"))
{
tempLabel = "(C)";
for (index = 0; index < temperature.length;)
{
celsius = (temperature[ index ] - 32) * 5/9;
index++;
}
}
// Convert in values to cm; replace the current values in precipitation
if (precipChoice.equalsIgnoreCase("c"))
{
precipLabel = "(cm)";
for (int i = 0; i < precipitation.length; i++)
{
double centimeters = precipitation[ i ] * 2.54;
}
}
// OUTPUT - print table using printf to format and align data
System.out.println();
System.out.println("Climate Data");
System.out.println("Location: " + city + ", " + state);
System.out.printf("%5s %18s %s %18s %s", "Month", "Temperature", tempLabel, "Precipitation", precipLabel);
System.out.printf("%n");
System.out.printf("***************************************************");
while (o < month.length)
{
if (tempChoice.equalsIgnoreCase("C"))
{
System.out.printf("%n");
System.out.printf(month[ o ]);
System.out.printf("%20.2f", celsius);
System.out.printf("%25.2f%n", precipitation[ o ]);
o++;
}
}
System.out.println();
System.out.printf("***************************************************");
System.out.println();
}// end main
}
Кроме того, вы всегда показывает ту же температуру: System.out.printf («% 20,2f», по Цельсию); Это должен быть соответствующий индекс массива. – user3001267