处理一些功课,我想让我的代码更精确,我在数组中有一组值,我需要将它们转换为一组不同的数字,同时仍然在数组中。由于这是我的作业,我不想实际发布我正在做的事情,所以我会发一个例子,不希望任何人为我做我的工作!
public class Example{
public Example(){
double rainfall [] = {1.07, 3.25, 4.51, 2.32, 8.28}; //in Inches
System.out.print("Enter i for Inches or c for Centimeters ");
String scale = in.next();
if(scale.equalsIgnoreCase("C")){
for (double i : rainfall){
rainSum += i;
}//End for
// Here is where I am lost on what to do in my current program I have it
// to where it adds up all the numbers as inches and then converts them into
// centimeters, however I need to display every number in centimeters, so I
// cannot do it that way.
}//End if
}
}
答案 0 :(得分:0)
您将所有数字相加并将该总和(英寸)转换为厘米乘以2.54。数组中的值仍以英寸为单位,因此要以厘米为单位打印所有值,只需遍历数组并打印值乘以2.54即可。或者,如果您需要转换后的值和原始值,只需复制数组,但将每个条目乘以2.54。
答案 1 :(得分:0)
如果需要保留原始值,则需要创建一个新数组并将转换后的值复制到新数组中的相应位置。
如果您不需要保留原始值,请使用数组元素赋值,例如:
private static final double CENTIMETERS_PER_INCH = 2.54d;
...
a[1] = a[i] * CENTIMETERS_PER_INCH;
在循环中计算转换后的值。常量定义将出现在类级别,而不是循环中。
答案 2 :(得分:0)
所以我想你有5天的降雨量统计数据。它们以英寸提供,您需要输出2件事(根据用户选择' C'):
(1)。 cms的总降雨量。
(2)。每日降雨量统计数据以厘米为单位。
(3)。您需要在Inches中保留原始数组时执行此操作。
所以我建议您使用以下代码:
(1)。 在考虑这样做时你是非常正确的。添加所有元素并将它们乘以2.54 在cms中得到它的等价物。 (2)。 调用方法显示如下:
void display(double[] a) // This would print individual rainfall stats in cms.
{
for(int i=0;i<a.length;i++)
{
System.out.println(a[i]*2.54);//Modify formatting as per your requirements
}
}
(3)。 这些仍然是原样。
方法-2: 如果程序的预期输入为&#39; C&#39;更多,然后创建另一个数组 实际上将初始英寸数组转换为cms数组。 所以,现在你有两个数组:
rainfallInches []&amp; rainfallCms []
您可以按如下方式使用它们:
for(int i=0;i<rainfallInches.length;i++)
{
rainfallCms[i] = rainfallInches[i]*2.54;
}// This creates new cms array
希望这有帮助
答案 3 :(得分:0)
public class Example{
public interface Constants{
/**
* Centimer to inch
*/
static final double CENTIMETER_TO_INCH = 0.393701;
/**
* Centimer to inch
*/
static final double INCH_TO_CENTIMETER = 2.54;
}
public double[] convertToCentimeter(double[] rainfallInInches){
int length = rainfallInInches.length;
double[] rainfallInCentimeters = new double[length];
for( int i = 0; i < length; i++ ){
rainfallInCentimeters[i] = rainfallInInches[i] * Constants.INCH_TO_CENTIMETER;
}
return rainfallInCentimeters;
}
public double[] convertToInches(double[] rainfallInCentimeter){
int length = rainfallInCentimeter.length;
double[] rainfallInInches = new double[length];
for( int i = 0; i < length; i++ ){
rainfallInInches[i] = rainfallInCentimeter[i] * Constants.CENTIMETER_TO_INCH;
}
return rainfallInInches;
}
public static void main(String[] args){
double rainfall [] = {1.07, 3.25, 4.51, 2.32, 8.28}; //in Inches
// Test convert to centimeter
Example example = new Example();
double[] convertedArray = example.convertToCentimeter(rainfall);
System.out.print("{");
for(int i = 0; i < convertedArray.length; i++){
System.out.print(convertedArray[i] + ", ");
}
System.out.println("}");
} // end main
}