简单的java错误:1、 生产0-9之间的100个随机整数,并且显示每一个数出现的次数 55
importjava.util.Random;publicclasst1{/***@paramargs*/publicstaticvoidmain(String[]arg...
import java.util.Random;
public class t1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a=new int[100];
Random random = new Random();
for(int i=0;i<100;i++){
a[i]=(int)(Math.random()*10);
}
for(int j=0;j<100;j++){
int num=0;
for(int t=0;t<10;t++){
if(a[j]==t){
{
num++;}
}
System.out.println(a[j]+"出现的次数为"+num);
}
}
}
} 展开
public class t1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a=new int[100];
Random random = new Random();
for(int i=0;i<100;i++){
a[i]=(int)(Math.random()*10);
}
for(int j=0;j<100;j++){
int num=0;
for(int t=0;t<10;t++){
if(a[j]==t){
{
num++;}
}
System.out.println(a[j]+"出现的次数为"+num);
}
}
}
} 展开
展开全部
14行以后的统计次序错了,应该是外层循环是t,内层是遍历100个数,
换成下面代码即可。
import java.util.Random;
public class t1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a=new int[100];
Random random = new Random();
for(int i=0;i<100;i++){
a[i]=(int)(Math.random()*10);
}
for(int t=0;t<10;t++)
{
int num=0;
for(int j=0;j<100;j++)
{
if(a[j]==t){num++;}
}
System.out.println(t+"出现的次数为"+num);
}
}
}
换成下面代码即可。
import java.util.Random;
public class t1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a=new int[100];
Random random = new Random();
for(int i=0;i<100;i++){
a[i]=(int)(Math.random()*10);
}
for(int t=0;t<10;t++)
{
int num=0;
for(int j=0;j<100;j++)
{
if(a[j]==t){num++;}
}
System.out.println(t+"出现的次数为"+num);
}
}
}
展开全部
正确的方法是这样的
package dome;
public class Dome {
//生成0-9之间100个随机整数,并显示出现的次数
public static void main(String[] args){
int[] num = new int[100];
int[] cun = new int[10];
for(int i=0;i<100;i++){
num[i] = (int)(Math.random()*10);
}
for(int i=0;i<10;i++){
cun[i] = 0;
for(int j=0;j<100;j++){
if(num[j]==i){
cun[i]++;
}
}
System.out.println(i + "出现了" + cun[i] + "次");
}
}
}
package dome;
public class Dome {
//生成0-9之间100个随机整数,并显示出现的次数
public static void main(String[] args){
int[] num = new int[100];
int[] cun = new int[10];
for(int i=0;i<100;i++){
num[i] = (int)(Math.random()*10);
}
for(int i=0;i<10;i++){
cun[i] = 0;
for(int j=0;j<100;j++){
if(num[j]==i){
cun[i]++;
}
}
System.out.println(i + "出现了" + cun[i] + "次");
}
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题有以下几个:
一、Random random = new Random();
该变量没有使用,应该删除,包括引包的import
二、因为输出内容是“数”出现“x”次,要以“数”为基础,判断次数。
循环要以“数”的循环为外层,次数判断的循环在内层
三、下面的这组大括号是多余的
四、输出语句位置错误。要放在第二个循环外
{
num++;}
下面是调整后的代码
public class t1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = new int[100];
//Random random = new Random();
for (int i = 0; i < 100; i++) {
a[i] = (int) (Math.random() * 10);
}
for (int t = 0; t < 10; t++) {
int num = 0;
for (int j = 0; j < 100; j++) {
if (a[j] == t) {
num++;
}
}
System.out.println(t + "出现的次数为" + num);
}
}
}
一、Random random = new Random();
该变量没有使用,应该删除,包括引包的import
二、因为输出内容是“数”出现“x”次,要以“数”为基础,判断次数。
循环要以“数”的循环为外层,次数判断的循环在内层
三、下面的这组大括号是多余的
四、输出语句位置错误。要放在第二个循环外
{
num++;}
下面是调整后的代码
public class t1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = new int[100];
//Random random = new Random();
for (int i = 0; i < 100; i++) {
a[i] = (int) (Math.random() * 10);
}
for (int t = 0; t < 10; t++) {
int num = 0;
for (int j = 0; j < 100; j++) {
if (a[j] == t) {
num++;
}
}
System.out.println(t + "出现的次数为" + num);
}
}
}
追问
道理我知道 可是我不知道错在那里 我是初学者
追答
写循环嵌套,首先要把自己当成机器,制定一个做事的顺序。
本题想输出的是:每个数字出现的次数。
有两个集合,一个是所有数字,即0到9,即t;另一个是实际出现的情况,即a。
有两种逻辑顺序
第一种:先确定要找的数字t,再看在a中出现几次。先确定的放外循环,再查看的放内循环。
第二种:直接看实际情况a,将出现的数,的次数记录,这样只需要一层循环,但占更多内存。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询