import java.util.Scanner;
public class arrayMethSumPer
{
public static void main(String[] args)
{
int x,sum,copysum;
Scanner keyboard = new Scanner(System.in);
System.out.println("enter how many integers you want to enter");
x = keyboard.nextInt();
int[] plan=new int [x];
System.out.println("You said you wanted to enter "+x+" integers, you may now proceed with entering them.");
for(int i=0;i<x;i++){
plan[i] = keyboard.nextInt();
sum=plan[i]+plan[i];
float[] percentage=(plan[i]*100/sum);
if(i==x-1)
System.out.println("your first integer is "+percentage[0]+" percent of the sum");
}
}
}
我正在尝试编译这个但是在行:
float[] percentage=(plan[i]*100/sum);
显示错误
arrayMethSumPer.java:18:错误:不兼容的类型:int无法转换为float []。
我明白这意味着什么,但这些类型之间的分歧是不相容的?
有人可以帮助我正确打印出每个值的总和百分比吗?
我可以做的另一件事是使用(float)()或(int)()
来强制转换它答案 0 :(得分:0)
您绝对可以将int
和floats
分开,但是,您不能通过数组来划分单数字。您在错误消息中看到的[]
是密钥。你正在进行整数除法,但是你说预期的变量是float[]
如果您打算将此值放在数组中的特定索引,您可以这样做:
percentage[i] = (plan[i] * 100) / sum;
但是,看起来你没有先前创建过的数组。如果您只是想要声明一个新变量,那么您可以使用 WITHOUT 括号,这样它就是常规的float
变量:
float = plan[i] * 100 / sum;
这将编译。如果你确实想要将它们存储在一个数组中,请确保你将这个数组声明为 BEFORE :
int[] list = new int[x];
double[] percentages = new double[x];
答案 1 :(得分:0)
在float[] percentage=(plan[i]*100/sum);
语句中,您尝试将一个int值赋给float数组。这是不可能做到的。
您必须根据您的要求将plan[i]*100/sum
的值分配给int
或float
。
e.g。
int x = plan[i]*100/sum; // int/int -> int
但是我想你想在这里得到小数值,所以它应该是
percentage[/*desired index*/] = (float) (plan[i] * 100) / sum;
除了这些之外,在for循环中,您将在每次迭代中创建数组。那真是太糟糕了。我认为你应该有像
这样的东西float[] percentage= new float[x];
for(int i=0;i<x;i++){
plan[i] = keyboard.nextInt();
sum = plan[i]+plan[i];
percentage[x] = (float)(plan[i]*100/sum);
if(i == x-1)
System.out.println("your first integer is "+percentage[0]+" percent of the sum");
}
答案 2 :(得分:-1)
这是打印每个值的百分比的方法。
import java.util.Scanner;
public class PercentCalc{
public static void main(String[] args){
Scanner keyboard = new Scanner(System.in);
System.out.print("How many numbers would you like to enter? :\n");
int x = keyboard.nextInt();
int[] list = new int[x];
double [] percentValue = new double[x];
int sum = 0;
for(int i =0; i<list.length; i++){
int num = i+1;
System.out.print("Please enter #" + num + ": ");
list[i] = keyboard.nextInt();
sum = list[i] + sum;
}
for(int i =0; i<list.length; i++){
percentValue[i] = ((double)list[i] / sum)*100.0;
System.out.printf("%d is %1.2f percent of the sum.\n", list[i], percentValue[i]);
}
}
}