java问题 输入20个10以内的正整数,输出每个数字出现的次数。急!!!

输入20个10以内的正整数,输出每个数字出现的次数。用数组,急!!!

package tryp;
import java.util.Scanner;
public class trym {
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
int i; // 循环控制变量
int n; // 存放要输入的数
final int MAXTIMES = 20; //有20个数要输入
final int MAXNUM = 10; //假设你说的10以内是不包括10的,即0~9
int[] array = new int[MAXNUM];

for(i=0; i<MAXTIMES; i++)
{
String str = "输入第";
str += (i+1);
str += "个数";
System.out.println(str);
n = in.nextInt();//这里采用控制台输入,可以改成你想要的方式
array[n]++; //以所输入的数作为数组下标
}
for(i=0; i<MAXNUM; i++)//输出结果
{
if(array[i]!=0)
{
System.out.println(array[i]);
}
}
}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-01
import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);
int intA = 0;
int[] array = new int[9];

for (int i = 0; i < 9; i++) {
do {
intA = scan.nextInt();

if (intA <= 0 || intA >= 10) {
System.out.println("此次输入无效,请输入10以内的整数:");
}
} while (intA <= 0 || intA >= 10);

switch (intA) {
case 1:
array[0]++;
break;
case 2:
array[1]++;
break;
case 3:
array[2]++;
break;
case 4:
array[3]++;
break;
case 5:
array[4]++;
break;
case 6:
array[5]++;
break;
case 7:
array[6]++;
break;
case 8:
array[7]++;
break;
case 9:
array[8]++;
break;
}
}

for (int i = 0; i < 9; i++) {
System.out.println(i + " 一共输入" + array[i] + "次");
}

}

}本回答被提问者采纳
第2个回答  2010-04-01
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int []a={0,0,0,0,0,0,0,0,0,0};int b;
for(int i=0;i<20;++i)
{
b=sc.nextInt();
if(b>10||b<0){--i;continue;}
else a[b]+=1;
}
for(int i=0;i<10;++i)
{
System.out.println("find\t"+i+"\tlist\t"+a[i]+"\ttimes~");
}
}
相似回答