首页 > 解决方案 > how can I get the only entered values from an array?

问题描述

I am trying to make a program to print a multiplication table in which the user enters the number of table he wants (for example 3) , also enters the values of table he wants( 2,6,5 (random/unordered)), also enters the range of multiplier. my code is printing all the elements present in the array. please help me. ThankYou.

import java.util.Scanner;

class Addition { public static void main(String[] args) {

    int j=0,k=0;
    Scanner obj=new Scanner(System.in);
    int arr[]=new int[32];
    System.out.println("how many multiplication table do you want to print ? ");
    int n=obj.nextInt();
    for(int i=1;i<=n;i++)
    {
        System.out.println("Enter number whos table you want ");
        for(j=1;j<=n;j++)
        {
            arr[j]=obj.nextInt(); break;
        }
    }
    System.out.println("Enter range of multiplier");
    int range=obj.nextInt();
    
    for(int l=0;l<=arr[j];l++)
    {
        for(k=1;k<=range;k++)
        {
            System.out.println(" "+l+" * "+k+" = "+l*k);
            
        }
    }
}

}

the output I want will look somewhat like this( how many multiplication table do you want to print ? =3 and on entering numbers 2,5,6 and range=4)

2x1=2 
2x2=4  
2x3=6   
2x4=8
   
5x1=5  
5x2=10  
5x3=15  
5x4=20

6x1=6  
6x2=12  
6x3=18  
6x4=24

标签: javaarraysfor-loop

解决方案


我做了一些调整来完成我认为你想要完成的事情。您可以使用如下所示的数组列表:

class Addition{
public static void main(String[] args) {
    
    int j=0,k=0;
    Scanner obj=new Scanner(System.in);
    
    ArrayList<Integer> typeMultiplicationTable = new ArrayList<Integer>();
    
    //used Arraylist instead of an array
    //int arr[]=new int[32]; 
    System.out.println("how many table? ");
    int n=obj.nextInt();
    
    for(int i=1;i<=n;i++)
    {
        System.out.println("Enter number whos table you want ");
        for(j=0;j<=n;j++)
        {
            typeMultiplicationTable.add(obj.nextInt());
            break;
            //arr[j]=obj.nextInt(); break;
        }
    }
    System.out.println("Enter range");
    int range=obj.nextInt();
    
    for(int l=0;l<=typeMultiplicationTable.size()-1;l++)
    {
        for(k=0;k<=range;k++)
        {
            System.out.println(" "+typeMultiplicationTable.get(l)+" * "+k+" = "+typeMultiplicationTable.get(l)*k);
        }
    }
}}

如果你最终使用了一个数组,你可以按如下方式实现它——我最终删除了一个 for 循环。

class Addition{
public static void main(String[] args) {
    
    Scanner obj=new Scanner(System.in);
    
    System.out.println("how many table? ");
    int n=obj.nextInt();
    
    int arr[]=new int[n]; 

        for(int j=0;j<=arr.length-1;j++)
        {
            System.out.println("Enter number whos table you want ");
            arr[j]=obj.nextInt();
        }
    
    System.out.println("Enter range");
    int range=obj.nextInt();
    
    for(int l=0;l<=arr.length-1;l++)
    {
        for(int k=0;k<=range;k++)
        {
            System.out.println(" "+arr[l]+" * "+k+" = "+arr[l]*k);
        }
    }
}}

推荐阅读