java中我要实现读取在1到100之间的整数,然后计算每个数出现的次数,我的程序为什么不对,求大神
importjava.util.Scanner;publicclasstest{publicstaticvoidmain(String[]args){Scannerinp...
import java.util.Scanner;
public class test {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
int[] zs=new int[100];
for(int i=0;i<zs.length;i++){
zs[i]=0;
}
System.out.println("Enter the integers between 1 and 100:");
while(input.hasNextInt()){
for(int j=0;j<zs.length;j++){
if(input.nextInt()==j)
zs[j-1]++;
}
}
for(int i=0;i<zs.length;i++){
if(zs[i]==1)
System.out.println(i+1+" occurs "+"1 time");
if(zs[i]>1)
System.out.println(i+1+" occurs "+zs[i]+"times");
}
}
} 展开
public class test {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
int[] zs=new int[100];
for(int i=0;i<zs.length;i++){
zs[i]=0;
}
System.out.println("Enter the integers between 1 and 100:");
while(input.hasNextInt()){
for(int j=0;j<zs.length;j++){
if(input.nextInt()==j)
zs[j-1]++;
}
}
for(int i=0;i<zs.length;i++){
if(zs[i]==1)
System.out.println(i+1+" occurs "+"1 time");
if(zs[i]>1)
System.out.println(i+1+" occurs "+zs[i]+"times");
}
}
} 展开
5个回答
展开全部
import java.util.Scanner;
public class test {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
int[] zs=new int[100];
// 这个循环多余,int类型默认就是0
for(int i=0;i<zs.length;i++){
zs[i]=0;
}
System.out.println("Enter the integers between 1 and 100:");
// 可以考虑换个思路,把输入的数减去1,作为数组下标。 zs[x-1]就可以了,不需要循环
while(input.hasNextInt()){
for(int j=0;j<zs.length;j++){
if(input.nextInt()==j)
zs[j-1]++;// 问题可能出在这里,迭代以后应该重新赋值回数组
}
}
for(int i=0;i<zs.length;i++){
if(zs[i]==1)
System.out.println(i+1+" occurs "+"1 time");
// 这里应该用个else,两个if就要判断两次
if(zs[i]>1)
System.out.println(i+1+" occurs "+zs[i]+"times");
}
}
}
public class test {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
int[] zs=new int[100];
// 这个循环多余,int类型默认就是0
for(int i=0;i<zs.length;i++){
zs[i]=0;
}
System.out.println("Enter the integers between 1 and 100:");
// 可以考虑换个思路,把输入的数减去1,作为数组下标。 zs[x-1]就可以了,不需要循环
while(input.hasNextInt()){
for(int j=0;j<zs.length;j++){
if(input.nextInt()==j)
zs[j-1]++;// 问题可能出在这里,迭代以后应该重新赋值回数组
}
}
for(int i=0;i<zs.length;i++){
if(zs[i]==1)
System.out.println(i+1+" occurs "+"1 time");
// 这里应该用个else,两个if就要判断两次
if(zs[i]>1)
System.out.println(i+1+" occurs "+zs[i]+"times");
}
}
}
展开全部
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] zs = new int[5]; //数组默认全初始化为0
System.out.println("Enter the integers between 1 and 100:"); //输入数
for (int j = 0; j < zs.length; j++) {
input.hasNextInt(); //逐个输入内容,这里没有判定非数字
zs[j] = input.nextInt(); //存储到数组
}
System.out.println("end input");
int temp = 0; //用来控制数组下标,读取数组
int total[] = new int[100]; //用来保存每个数次数的数组
while (temp < zs.length) {
if (zs[temp] > 100 || zs[temp] < 1) { //如果不在范围内,则跳入下一个数
temp++;
continue;
}
total[zs[temp]-1]++; //zs[temp]表示输入的数 -1是用来方便输出 存入次数
temp++;
}
for (int i = 0; i < total.length; i++) {
if(i%4==0){
System.out.println();
}
System.out.print("第 " + (i+1) + " 数,出现:" + total[i] + "次\t\t");
}
}
}
帮你完成了,你看看对不对,呵呵
public class test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] zs = new int[5]; //数组默认全初始化为0
System.out.println("Enter the integers between 1 and 100:"); //输入数
for (int j = 0; j < zs.length; j++) {
input.hasNextInt(); //逐个输入内容,这里没有判定非数字
zs[j] = input.nextInt(); //存储到数组
}
System.out.println("end input");
int temp = 0; //用来控制数组下标,读取数组
int total[] = new int[100]; //用来保存每个数次数的数组
while (temp < zs.length) {
if (zs[temp] > 100 || zs[temp] < 1) { //如果不在范围内,则跳入下一个数
temp++;
continue;
}
total[zs[temp]-1]++; //zs[temp]表示输入的数 -1是用来方便输出 存入次数
temp++;
}
for (int i = 0; i < total.length; i++) {
if(i%4==0){
System.out.println();
}
System.out.print("第 " + (i+1) + " 数,出现:" + total[i] + "次\t\t");
}
}
}
帮你完成了,你看看对不对,呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] zs = new int[100];
System.out.println("Enter the integers between 1 and 100:");
while (input.hasNextInt()) {
int temp = input.nextInt();
for (int j = 0; j < zs.length; j++) {
if ( temp== j)
zs[j - 1]++;
}
}
for (int i = 0; i < zs.length; i++) {
if (zs[i] == 1)
System.out.println(i + 1 + " occurs " + "1 time");
if (zs[i] > 1)
System.out.println(i + 1 + " occurs " + zs[i] + "times");
}
}
}
你不应该把读取操作放到循环里面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你那100个数怎么来?
难道是手输?
我缩减成10了,但,结果是要一直输入的
你要贴出程序的思想,怎么个流程,注释
有几个有耐心关看代码
难道是手输?
我缩减成10了,但,结果是要一直输入的
你要贴出程序的思想,怎么个流程,注释
有几个有耐心关看代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改好发你了,注意查收私信
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询