Potreste aiutarmi con questo problema di informatica?? x favore è urgente! :(?

Dopo aver caricato in memoria array di numeri interi con dimensione inserita da tastiera non superiore a 15,azzerare l'elemento di posto n, con n dato in input.

(Suggerimento: analisi e pseudo-codifica) senza finestra del codice..

3 risposte

Classificazione
  • 8 anni fa
    Risposta preferita

    Basta semplicemente che fai un controllo,scorri l'array finchè l'indice non è uguale ad n e azzeri quel numero.

    Ad esempio,l'indice è "i",e l'array è chiamato "a",il numero di elementi "N" e l'elemento posto in "n".

    N=5;

    quindi abbiamo un array con 5 posizioni...carichiamolo.

    lo abbiamo caricato ed è così:

    a[0]=5;

    a[1]=-2;

    a[2]=0;

    a[3]=3;

    a[4]=9;

    Inseriamo n,n=3;

    facciamo un altro for,dove inizializzi i=0,e finchè i non è uguale a n continua il ciclo,ovvero:

    for(i=0;i!=n;i++)

    {

    }

    a[i]=0;

    così facendo quando si esce dal ciclo i è uguale a n,quindi a[i] o anche a[n] è uguale a 0.

    Ciao ciaoooo

    • Commenter avatarAccedi per rispondere alle risposte
  • 8 anni fa

    A ma lo dovevi azzerare in posizione n...

    sono un gran pirla...

    allora bastachefai:

    nomedelarray[n]=0;

    non serve manco a scorrerlo.

    mamma mia sto a invecchià

    la michiata scritta sotto non la cancello, rimanda a mia pubblica vergogna.

    La risposta precedente è **** e funziona...

    Te ne do una più tamarrona.

    Crei un nuovo array (nel caso di dimensione n - 1), ci copi dentro tutti gli elementi tranne quello che devi eliminare.

    A sto punto restituisci il nuovo array sul vecchio.

    Se il tuo array è capace (cioè non è un tipo elementare ma magari un object) potrebbe pure avere delle funzioni ganze tipo push e pop...

    Allora in quel caso il problema di crearlo di una data dimensione non si pone.

    Ti metto due linee in JScript per fare un esempio...

    //L'array che hai di dimensione 15 o quello che vuoi si chiama foo, INT_POSIZIONE_N è il posto da //cui devi eliminare sto elemento;

    var foobar = new Array();

    while (var int_index == 0; int_index < foo.lenght; int_index++){

    if(int_index<>INT_POSIZIONE_N){

    foobar.push(foo[int_index]);

    }

    int_index++;

    }

    //poi fai

    foo = foobar;

    //e vinci

    // è una soluzione defincente ma come dice Woody - BASTA CHE FUNZIONA -

    Saluti e Baci

    Fonte/i: Me, me stesso, medesimo.
    • Commenter avatarAccedi per rispondere alle risposte
  • Anonimo
    8 anni fa

    Allora però devi specificare delle cose: L'array una volta eliminato il dato lo devi ridimensionare?

    Comunque una volta preso dall'input l'indice tu con l'aiuto di 2 variabili cominci a spostare gli elementi dopo l'indice n in avanti, ed esattamente lo fai in questo modo:

    Fissiamo m come il numero di elementi.

    Se n=m -> nessun problema vuol dire che dobbiamo eliminare l'ultimo elemento e basta cancellarlo.

    Se n<m -> allora comincia dall'indice n+1 e lo mettiamo nel posto n, e così via fino a che n=m-1.

    Se devi ridimensionarlo è ancora più semplice

    Basta fare un ciclo che copi tutti gli elementi del primo array nel secondo tranne quello di indice n

    Fonte/i: Perito Informatico
    • Commenter avatarAccedi per rispondere alle risposte
Altre domande? Fai una domanda e ottieni le risposte che cerchi.