java中怎么根据键盘输入确定数组长度,同时又根据输入给数组赋值,求大神帮助!

原题是这样的。我一开始写的是:

package homeworks;
import java.util.Scanner;
public class SixPoint3 {
public static void main(String[] args) { System.out.print("Enter the integers between 1 and 100: "); int n = -1; double x = 0; Scanner input = new Scanner(System.in); do{ x = input.nextDouble(); n++; }while(x != 0); final int n1 = n; double[] numbers = new double[n1]; for(int i = 0; i < n1; i++) numbers[i] = input.nextDouble(); for(double u: numbers) System.out.print(u + " "); int[] times = new int[n1]; for(int i = 0; i < n1; i++){ times[i] = 1; for(int j = i + 1; j < n1; j++){ if(numbers[j] == numbers[i]) times[i] ++; } System.out.print(numbers[i] + "occurs" + times[i]); if(times[i] == 1) System.out.print(" time\n"); else System.out.print(" times\n"); } }}
输入的值赋给x计算数组长度后就不能再赋给numbers[i]了。请问各位有没有什么好办法?在这里先谢谢大家了O(∩_∩)O。搜索看见有用ArrayList的,我也没大看明白。

先将输入接收为字符串。
java 的String 有一个方法split,可以把接收到的字符串通过给定的字符分割成一个数组。
按照你的需求,可以用空格作为分隔符。。String[] array = str.split(" ");
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-22
除非动态生成,否则基本不可能
你可以是用链表,将数据先存到链表中,也就是arraylist
然后根据链表生成数组,arraylist有相应的方法转换
第2个回答  2013-11-22
给你一个C语言的版本,希望有帮助
#include <stdio.h>

int main(void)
{
int data = 0;

int freq[101] = {0};

scanf("%d", &data);

while(data)

{
freq[data]++;

}

for(i = 1; i < 100; i++)

if(freq[i])

{
if(freq[i] == 1)

printf("%d occurs 1 time\n", i);

else

printf("%d occurs %d times\n", i, freq[i]);

}

return 0;

}
相似回答