Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Как сравнить все элементы в массиве?


Автор: zayabelka 28.10.2012, 13:19
Добрый день! Подскажите, я новичок, только начала изучать Java. Нужно, чтобы пароль, сгенерированный программой совпадал с паролем, который ввел пользователь.  Либо же выводил подсказки типа - 1 ячейка совпала, 2 не совпала, 3 не совпала и т.д.

Код
import java.util.Random;
import java.util.Scanner;


public class newParol {
    
    public static void main(String[] args) {
        
        //сначала программа должна сгенерировать 8-значный код
        
        int numberD = 8; // количество значений в пароле
        int userParol[]= new int[numberD];
        int[] progParol=new int[numberD]; //длина массива
        for (int i = 0; i < progParol.length; i++){
            //программа задает пароль из диапазон от 0 до 1 включительно
            progParol [i] =(int) Math.floor(Math.random() * 2); 
            System.out.print(progParol[i]);
            }
        
        System.out.println("\nВведите пароль: ");
        for (int j = 0; j < userParol.length-1; j++){
        Scanner input = new Scanner( System.in );
        userParol[j] = (int)input.nextInt(); //Пользователь вводит пароль
        for(int i=0; i<=progParol.length-1; i++);
        }
}}
        
  smile  smile 

Автор: Pretorian 29.10.2012, 16:34
надо сделать цикл, и i-ый элемент первого массива сравнивать с i-ым элементом второго массива. И в зависимости от результа сравнения выводить нужную подсказку. Попробуйте сделать сами, без примера  smile 

Автор: zayabelka 29.10.2012, 21:53
for (int i = 0; i < numberD; i++) {
            if (userParol[i] != progParol[i]) 
                System.out.println("значение №" + i + " в паролях не совпадают");
        } 

такое условие не работает. Пробовала разные варианты, не то. Прошу помочь, кто понимает.... smile 

Автор: mstalker26 30.10.2012, 00:23
Сообщения о совпадении цифр в массиве доработаете напильником smile
Код

public static void main(String[] args) {
    
    final int passwordLength = 8;
    int[] generatedPassword = new int[passwordLength];
    int[] userPassword = new int[passwordLength];

    // generate password
    for (int i = 0; i < generatedPassword.length; i++) {
      generatedPassword[i] = (int) Math.floor(Math.random() * 2);
      System.out.print(generatedPassword[i]);
    }

    System.out.println("\n\nEnter the password:\n");
    for (int j = 0; j < userPassword.length; j++) {
      Scanner input = new Scanner(System.in);
      userPassword[j] = input.nextInt();
    }

    // compare the passwords
    System.out.println("\nCompare the passwords:");
    for (int k = 0; k < generatedPassword.length; k++) {
      if (userPassword[k] == generatedPassword[k]) {
        System.out.print(userPassword[k]);
      } else {
        System.out.print("*");
      }
    }
  }

Автор: Pretorian 30.10.2012, 06:54
Цитата(zayabelka @  29.10.2012,  23:53 Найти цитируемый пост)
такое условие не работает

оно работает

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)