Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [c] vettori riceve interi e mettere in un altro vettore

    buongiorno sono nuovo e sto ancora imparando ad usare il forum, ho cercato sul forum se cera qualcosa di simile ma non lho trovato, posto qui un esercizio che mi e stato dato dal mio insegnate di informatica.


    Scrivere un programma C che acquisisce un array a1 di 10 interi. Il programma crea e visualizza un nuovo array a2 contenente i soli numeri pari presenti in a1 più di una volta, senza salvare le ripetizioni. Si noti che l’ordine con cui i valori sono salvati in a2 è irrilevante. Per esempio se l’utente inserisce l’array:
    1 2 4 2 8 6 6 8 8 1
    il programma creerà e visualizzerà l’array:

    2 6 8


    sono arrivato a questo punto pero non so come fare: tipo se mi da due volte lo stesso numero come facco a farlo scrivere solo una volta nell'altro harray

    #include<stdio.h>
    #define N 10
    int main(){
    int a[N],b[],n,i;
    for(i=0;i<N;i++){
    scanf("%d ", &a[i]);
    }

    for(i=0;i<N;i++){
    if(a[i]%2==0){//*so ce e da qui che devo procedere per l'altro array ma non so come andare avanti se potreste darmi qualche sugerimento ve ne sarei grato*//

    }
    }

  2. #2
    Tutto corretto fino a dove sei arrivato, bravo !
    Allora nel secondo ciclo hai giustamente verificato se il primo elemento sia o meno un numero pari o dispari. In tal caso (pari) entra nell'if.
    Adesso dobbiamo verificare che nell'array a2 (che tu pare hai chiamato b e attento a dargli una dimensione di N come l'array a) non ci sia il valore pari che dovremmo inserire (a[i]).
    A questo punto devi fare un ciclo e verificare che il tuo valore pari a[i] non sia contenuto nell'array b. Se scorrento tutto l'array b il valore a[i] non viene trovato lo aggiungi, altrimenti non lo fai.
    Dunque questa ipotetica aggiunta la fai solo dopo il ciclo se "ho controllato fino all'ultima posizione di b" e non ho trovato una corrispondenza devo aggiungerlo.
    Come capisco se trovo o meno una corrispondenza ? Banalmente puoi crearti una variabile e assegnarle un valore, tipo: int corrispondenza = 0. Se b[posizione_da_controllare] == a[i] allora "corrispondenza = 1" altrimenti "procedi con il ciclo".
    A fine ciclo, se corrispondenza == 0 allora "aggiungo in b il nuovo numero" altrimenti "non aggiungo nulla".

    Penso che come suggerimenti possano andare

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.