输入整数n,创建n个对象,放入同一个数组中。 如果输入c,则new computer(); //注意:computer是系统中已有的类,无需自己编写 如果输入d,则根据随后的输入创建double类型对象。 如果输入i,则根据随后的输入创建integer类型对象。 如果输入s,则根据随后的输入创建string类型对象。 如果不是以上这些输入,则不创建对象,而是将null存入数组相应位置。 最后倒序输出数组中的所有对象,如果数组中相应位置的元素为null则不输出。
时间: 2023-05-31 09:19:45 浏览: 147
EDA/PLD中的LabVIEW创建一维数组
### 回答1:
好的,以下是中文回复:
首先,根据输入的整数n创建一个长度为n的对象数组。然后,根据输入的不同字符,创建不同类型的对象并存入数组中。如果输入的字符不是c、d、i、s中的任意一个,则将null存入数组相应位置。
最后,倒序输出数组中的所有对象,如果数组中相应位置的元素为null则不输出。
### 回答2:
题目要求我们根据输入来创建不同类型的对象,并且放入同一个数组中,最后输出这些对象(null除外)。因此我们需要进行以下几个步骤:
1. 首先读取输入的整数n,确认需要创建多少个对象,并创建一个长度为n的数组来存放这些对象。
2. 对于每一个需要创建的对象,读取输入的字符并进行判断:
- 如果输入字符为c,直接调用系统中已有的computer类的构造函数创建一个computer对象,并将其存入数组中。
- 如果输入字符为d,读取下一个输入作为double值,然后调用double的构造函数创建一个double对象,并将其存入数组中。
- 如果输入字符为i,读取下一个输入作为integer值,然后调用integer的构造函数创建一个integer对象,并将其存入数组中。
- 如果输入字符为s,读取下一个输入作为string值,然后调用string的构造函数创建一个string对象,并将其存入数组中。
- 如果输入字符不是以上任何一种,则将null存入数组相应位置。
3. 最后,对于数组中的所有元素,如果不为null,则按照倒序输出。
下面附上示例代码供参考:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(); // 读取输入的整数n
Object[] objs = new Object[n]; // 创建长度为n的数组
for (int i = 0; i < n; i++) {
char c = scanner.next().charAt(0); // 读取输入的字符
if (c == 'c') {
objs[i] = new computer(); // 创建computer对象并存入数组
} else if (c == 'd') {
double d = scanner.nextDouble(); // 读取double值
objs[i] = new Double(d); // 创建Double对象并存入数组
} else if (c == 'i') {
int num = scanner.nextInt(); // 读取integer值
objs[i] = new Integer(num); // 创建Integer对象并存入数组
} else if (c == 's') {
String str = scanner.next(); // 读取string值
objs[i] = new String(str); // 创建String对象并存入数组
} else {
objs[i] = null; // 存入null
}
}
for (int i = n - 1; i >= 0; i--) { // 倒序输出
if (objs[i] != null) { // 如果不为null则输出
System.out.println(objs[i]);
}
}
}
}
```
需要注意的是,程序中创建的整数、双精度和字符串对象都已经过时,应该使用对应的包装类Integer、Double和String来创建对象。此外,题目要求输出对象而不是打印对象的地址,因此需要重写对应类的toString方法。
### 回答3:
这道题要求我们根据输入创建不同类型的对象,并存入同一个数组中,最后倒序输出数组中的所有非null元素。
思路:
1.首先,我们需要读入用户输入的整数n,并且创建一个长度为n的对象数组。
2.循环n次,读入用户输入的字符,根据字符类型分别处理。
3.如果输入是c,我们就直接创建一个computer对象,然后存入数组中对应的位置。
4.如果输入是d,我们再读入一个double类型的数字,并根据该数字创建一个double类型的对象。
5.如果输入是i,同样读入一个整型数字,并根据该数字创建一个integer类型的对象。
6.如果输入是s,我们则需要读入一个字符串,根据该字符串创建一个string类型的对象。
7.如果输入不是以上几种情况,则将null存入数组对应位置。
8.最后,从数组末尾开始遍历,输出所有非null元素即可。
下面是完整的代码实现:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
Object[] arr = new Object[n];
for (int i = 0; i < n; i++) {
char ch = input.next().charAt(0);
switch (ch) {
case 'c': // 创建computer对象
arr[i] = new computer();
break;
case 'd': // 创建double对象
double d = input.nextDouble();
arr[i] = new Double(d);
break;
case 'i': // 创建integer对象
int j = input.nextInt();
arr[i] = new Integer(j);
break;
case 's': // 创建string对象
String s = input.next();
arr[i] = new String(s);
break;
default: // 对于其他情况,存入null
arr[i] = null;
break;
}
}
// 倒序输出非null元素
for (int i = n - 1; i >= 0; i--) {
if (arr[i] != null) {
System.out.println(arr[i]);
}
}
}
}
阅读全文