【发布时间】:2015-09-23 23:32:29
【问题描述】:
我正在尝试对每个 taco (1-10) 的价格进行冒泡排序,同时让 taco 名称遵循其原始价格(不需要对 taco 名称进行排序)。但是,我在排序的 if 语句中收到错误消息。
Exception in thread "main" java.lang.Error:
Unresolved compilation problems: The type of the expression must be an array type but it resolved to int
Type mismatch: cannot convert from double to int
Type mismatch: cannot convert from double to int
Type mismatch: cannot convert from double to int
Type mismatch: cannot convert from double to int
Type mismatch: cannot convert from double to int
at TacoSort.main(TacoSort.java:36)
我可能是冒泡排序不准确,还是我没有适当地合并字符串?
import java.util.Scanner;
class TacoSort
{
//Create a constant amount of temperatures
public static int NUMBER_OF_TACOS = 10;
public static int NUMBER_OF_PRICES = 10;
public static void main(String[] args)
{
// TODO Auto-generated method stub
Scanner keyboard = new Scanner(System.in);
System.out.println("Welcome to the taco price sorter! Enter 10 taco names and prices and I'll sort it!");
//Populates array of 10 tacos
//Prompts user to enter name of each taco
String[] tacos = new String[NUMBER_OF_TACOS];
for (int i = 0; i < NUMBER_OF_TACOS; i++)
{
System.out.print("Enter the name of taco " + (i+1) + "\n");
tacos[i] = keyboard.next();
//Populates array of 10 prices
//Prompts user to enter price of each taco
double[] prices = new double[NUMBER_OF_PRICES];
//for (int j = 0; j < NUMBER_OF_PRICES; j++) //
System.out.print("Enter taco's price " + (i+1) + "\n");
prices[i] = keyboard.nextDouble();
}
for(double i = 0; i < NUMBER_OF_PRICES; i++)
{
for(double j = i + 1; j < tacos.length; j++)
{
if(NUMBER_OF_PRICES[i] > tacos[(int) j])
{
String temp = tacos[i];
tacos[i] = tacos[j];
tacos[i] = temp;
}
}
}
for(int i = 0; i < tacos.length; i++)
{
System.out.print(tacos[i] + " ");
}
}
}
【问题讨论】:
-
能否打印错误信息?
-
线程“main” java.lang.Error 中的异常:未解决的编译问题:表达式的类型必须是数组类型,但它解析为 int 类型不匹配:无法从 double 转换为 int 类型不匹配: 无法从 double 转换为 int 类型不匹配:无法从 double 转换为 int 类型不匹配:无法从 double 转换为 int 类型不匹配:无法在 TacoSort.main(TacoSort.java:36) 中从 double 转换为 int
-
这篇文章让我饿了
-
每个 Taco 可以有 10 个价格?在第一个循环中检查新的。这个声明
if(NUMBER_OF_PRICES[i] > tacos[(int) j])- 也必须重写。 NUMBER_OF_PRICES 设置为 10。您不应该对其进行索引。我建议您从一个数组开始,该数组使用 Taco 名称和价格(即没有用户输入)进行初始化。让冒泡排序工作,然后在您希望用户输入数据的地方实现代码。 -
我需要它大于或等于炸玉米饼的数量。