0
votes

Quelqu'un peut-il m'expliquer ce code? À propos de l'entrée utilisateur, du scanner, etc.

Quelqu'un peut-il m'expliquer comment ce code fonctionne?

Il permet d'entrer les numéros d'entrée de l'utilisateur jusqu'à 1000 code>, puis il imprime les numéros entrés d'origine, le tout et l'étrange, tout dans un tableau séparé. Mais je ne comprends tout simplement pas les parties où il y a gem ++ code> et gem1 ++ code> quand il génère le nombre pair et impair non du nombre de nombres paires et impairs. p>

et après avoir placé cette p> xxx pré>

pourquoi doit-il répéter gem = 0 code> et gem1 = 0 à nouveau? Je suis tellement désolé si je demande trop de questions, je suis juste confus, je viens d'apprendre Java la semaine dernière. P>

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

        Scanner s = new Scanner(System.in);
        System.out.print("Enter no. of elements you want in array : ");
        int n = s.nextInt();

        if (1 <= n && n <= 1000) {

            double a[] = new double[n];
            int gem = 0, gem1 = 0;

            System.out.println("Enter all the elements : ");
            for (int i = 0; i < n; i++) {
                a[i] = s.nextInt();
                if (a[i] % 2 == 0)
                    gem++;
                else
                    gem1++;
            }

            double even[] = new double[gem];
            double odd[] = new double[gem1];

            gem = 0;
            gem1 = 0;

            for (int i = 0; i < a.length; i++) {
                if (a[i] % 2 == 0) {
                    even[gem] = a[i];
                    gem++;
                } else {
                    odd[gem1] = a[i];
                    gem1++;
                }
            }

            System.out.println("Original: " + Arrays.toString(a));
            System.out.println("Odd: " + Arrays.toString(odd));
            System.out.println("Even: " + Arrays.toString(even));

        } else
            System.out.print("Invalid input");
    }
}


0 commentaires

3 Réponses :


0
votes

Si vous souhaitez que le programme s'arrête après que l'utilisateur entre un nombre supérieur à 1000 ° moins de 0, vous devez ajouter l'instruction code> break code> dans votre si code> condition.

if (size < 0 || size > 1000) {
    System.out.println("Size must be between 0 and 1000");
    break;
}


2 commentaires

pause est utile pour sortir des boucles, le test du nombre d'éléments est effectué avant toute boucle si (1 <= n && n <= 1000) et depuis le La méthode s'arrête juste après avoir exécuté si sinon il n'y a rien à sortir. Mais si vous allez inverser si vous pouviez retourner au lieu d'avoir toute la logique à l'intérieur d'un si


Oui, c'est mieux de cette façon.



0
votes

le code avant double même [] = nouveau double [gem]; Double impair [] = nouveau Double [GEM1]; tente d'obtenir le nombre de chances survient et le nombre de personnes est-il survenu et de mettre tous les éléments entrés dans le tableau A . Après tout cela, maintenant ce que nous avons eu est un tableau de chiffres appelé a contenant tous les éléments entrés. et deux nombres appelés GEM et GEM1, qui contient le nombre de chances surviennent et le nombre de personnes s'est même survenu. donc Nous obtenons des gemmes (numberovesvens), GEM1 (NumberOdDS) et la liste A

Ensuite, nous devons mettre toutes vos cotes de A à un nouveau tableau appelé impair [] avec taille GEM1, et Mettez tout Evens à partir de A à un nouveau tableau appelé même [] avec la taille GEM. À ce stade, le devoir de la variable GEM1 et GEM est fait. ils deviennent inutiles.

Nous devons maintenant passer à travers la liste et choisir l'étrange et le même dehors et les mettre dans le tableau un par un de manière séquentielle. C'est pourquoi nous avons besoin de deux nouvelles variables avec 0 initialisée. Dans ce cas, parce que GEM et GEM1 sont inutiles esalisés, ils sont réaffectés pour aider à manipuler les tableaux d'arbres a , impair [] et même []


0 commentaires

0
votes

L'utilisateur entrait donc le nombre d'éléments qu'il veut dans la matrice ( n code>) xxx pré>

et c'est à peu près. D'abord, l'utilisateur saisit tous les numéros dans un seul tableau et compte simplement le nombre impair et le nombre de nombres pairs où entré, P>

puis deux nouveaux tableaux sont créés, un pour les nombres impairs et depuis Nous les avons comptés, nous savons à quel point ces deux nouveaux matrices doivent être. P>

et enfin que tous les chiffres sont à nouveau itératés et mis dans leur matrice en fonction. À la fin, vous avez 3 tableau, celui qui détient des chiffres tous forts>, celui qui détient les numéros même forts> et un avec uniquement les numéros impairs forts>.

edit forte> p>

Voici quelques modifications mineures que vous pourriez apporter sans modifier la nature de cette méthode: P>

gem = 0
gem1 = 0
n = 4               // user said 4 
a = [ , , , ]       // array a is empty but holds the space for 4 numbers

a = [1, , , ]       // user enters 1
     ^
    i=0

gem1 = 1            // 1 is an odd number -> gem1++

a = [1,4, , ]       // user entered "4"
       ^
      i=1
gem = 1             // 4 is an even number -> gem++

a = [1,4,2, ]       // user entered "2"
         ^
        i=2
gem = 2             // 24 is an even number -> gem++

a = [1,4,2,7]       // user entered "7"
           ^
          i=3
gem1 = 2             // 7 is an odd number -> gem1++


then we fill the other arrays

even = [ , ]          // gem is 2, so we have 2 even numbers
odd  = [ , ]          // gem1 is 2, so we have 2 odd numbers

a = [1,4,2,7]
     ^ 
    i=0

odd[1, ]    // for i=0, a[i] is 1, which is an odd number

a = [1,4,2,7]
       ^ 
      i=1

even = [4, ]    // for i=1, a[i] is 4, which is an even number

a = [1,4,2,7]
         ^ 
        i=2

even = [4,2]    // for i=2, a[i] is 2, which is an even number

a = [1,4,2,7]
           ^ 
          i=3

odd = [1,7]    // for i=3, a[i] is 7, which is an odd number

and in the end you have

a    = [1,4,2,7]
even = [4,2]
odd  = [1,7]


7 commentaires

Merci beaucoup pour ça!!!! Puis-je vous poser une dernière fois, tout ce dont j'ai besoin, c'est d'imprimer l'original, puis des chiffres impairs, pourquoi est-il nécessaire de compter d'abord les nombres paires et impairs? Ou puis-je faire de ce code plus court?


Et pourquoi avons-nous besoin de GEM ++ dans la dernière partie?


Désolé pour le retard. Eh bien, dans la dernière partie, vous n'avez que i ++ dans votre boucle pour votre boucle, mais vous devez également accroître l'index pour le Même et étrange tableau - C'est pourquoi c'est pourquoi vous avez gem ++ (index du tableau même) et gem1 ++ (index du tableau impair).


Il n'y a pas de solution directe pour raccourcir le code - non sans modifier les "types de données" que vous utilisez. (Vous pouvez utiliser une arrayliste au lieu d'un double [] mais c'est probablement trop loin pour l'instant). Ce que vous pouviez faire, cependant, est renommé la variable. Il est difficile de comprendre car les noms n'ont pas de sens. (Voir mon édition)


Vous êtes incroyable merci beaucoup pour votre aide! :)


Merci beaucoup!!! J'avais eu du mal à comprendre les matrices parce que je viens d'étudier Java la semaine dernière et j'ai essayé si fort à la recherche, mais je ne peux toujours pas la comprendre mais je l'obtiens maintenant! Merci!


Vous êtes les bienvenus :) Si je peux vous donner un dernier indice, la façon dont les matrices sont déclarées ici est déroutante: double A [] = .. Il est parfaitement valide mais en Java, il est "courant" écrire: double [] A = .. . Les accolades [] vont directement après le type . Donc, vous pouvez le lire comme: "Double-Array A ". Parce que c'est "un éventail de doubles appelés a ". Lorsque vous écrivez double A [] (accolades après le nom), vous pouvez la lire "Double A-Array", ce qui ressemble plus à "un tableau de A S" (qui n'a pas de sens). Plus tard, lorsque le code devient plus complexe, vous pourriez dépendre de ces normes pour la comprendre.