+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 2 su 2

Compattare un vettore a sinistra

  1. #1
    Post
    6
    Like Inviati  
    0
    Like Ricevuti  
    0
    Programma per compattare il vettore a sinistra eliminando un valore dato in input:


    Ecco il problema che mi da:

    Quanti numeri vuoi inserire (max 100): 10
    Inserisci: 1
    Inserisci: 1
    Inserisci: 1
    Inserisci: 1
    Inserisci: 1
    Inserisci: 1
    Inserisci: 1
    Inserisci: 1
    Inserisci: 1
    Inserisci: 1
    Inserisci il numero da eliminare: 1
    OUTPUT
    Vettore: 1 1 1 1 1


    Dovrebbe eliminare tutti i numeri in questo caso, invece no. Non riesco a capire logicamente qual'è il problema


    
    package compattare;
    
    import java.util.Scanner;
    
    public class compattareVettore {
    
    	public static void main(String[] args) {
    
    		final int MAX_TOT = 100;
    		int vett[] = new int[MAX_TOT];
    
    		Scanner in = new Scanner(System.in);
    
    		System.out.print("Quanti numeri vuoi inserire (max " + MAX_TOT + "): ");
    		int n = in.nextInt();
    
    		// Inserisco gli interi nel vettore 'vett[]'
    		for (int i = 0; i < n; i++) {
    			System.out.print("Inserisci: ");
    			vett[i] = in.nextInt();
    		}
    
    		System.out.print("Inserisci il numero da eliminare: ");
    		int num = in.nextInt();
    
    		for (int i = 0; i < n; i++) {
    			if (vett[i] == num) {
    
    				// Compatta
    
    				for (int j = i; j < n - 1; j++) {
    					vett[j] = vett[j + 1];
    				}
    				n--;
    
    			}
    
    		}
    
    		System.out.println("OUTPUT");
    		System.out.print("Vettore: ");
    		for (int i = 0; i < n; i++) {
    			System.out.print(vett[i] + " ");
    		}
    	}
    }
    
    ℹ️ Leggi di più su Vittorio Esposito ...

  2. #2
    Post
    6
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ho risolto, dovevo decrementare di i.


    package compattare;

    import java.util.Scanner;

    public class compattareVettore {

    public static void main(String[] args) {

    final int MAX_TOT = 100;
    int vett[] = new int[MAX_TOT];

    Scanner in = new Scanner(System.in);

    System.out.print("Quanti numeri vuoi inserire (max " + MAX_TOT + "): ");
    int n = in.nextInt();

    // Inserisco gli interi nel vettore 'vett[]'
    for (int i = 0; i < n; i++) {
    System.out.print("Inserisci: ");
    vett[i] = in.nextInt();
    }

    System.out.print("Inserisci il numero da eliminare: ");
    int num = in.nextInt();

    for (int i = 0; i < n; i++) {
    if (vett[i] == num) {

    // Compatta

    for (int j = i; j < n - 1; j++) {
    vett[j] = vett[j + 1];
    }
    n--;
    i--;

    }

    }

    System.out.println("OUTPUT");
    System.out.print("Vettore: ");
    for (int i = 0; i < n; i++) {
    System.out.print(vett[i] + " ");
    }
    }
    }
    ℹ️ Leggi di più su Vittorio Esposito ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Sottomaschera allineata a sinistra
    Da rpk nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 05-12-2020, 23:53
  2. Carattere a destra e sinistra
    Da fpog nel forum Microsoft Access
    Risposte: 13
    Ultimo Post: 14-08-2013, 10:33
  3. Form caption a destra e sinistra
    Da pazienza nel forum Visual Basic 6
    Risposte: 1
    Ultimo Post: 31-05-2011, 13:05
  4. Risposte: 8
    Ultimo Post: 22-04-2011, 19:52
  5. [Risolto] Icona in basso a sinistra.
    Da mandrak nel forum Microsoft Windows
    Risposte: 4
    Ultimo Post: 09-03-2010, 15:02