Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    55

    [C] unione di due vettori

    Salve ragazzi, sono incappato in questo problema appartentemente facile, ma non riesco proprio a risolverlo.

    Allora, il testo è il seguente:
    Scrivere un programma in C che prende in ingresso due array e restituisce un solo array ottenuto dall'unione dei due in modo che gli elementi di posto pari del nuovo array siano uguali a quelli del primo array e gli elementi di posto dispari uguali a quelli del secondo array. Lo studente supponga che gli array hanno dimensione 10 e scelga se essi devono essere passati alla funzione o inseriti da tastiera.


    Il mio codice è:


    codice:
    #include<stdio.h>
    #include<stdlib.h>
    #define VAL 10
    
    void unione (int a[], int b[]);
    
    int main (){
    
    int a[VAL], b[VAL];
    int i;
    printf ("Inserire il valore del primo array\n");
    for (i=0; i<10; i++){
        scanf ("%d", &a[i]);}
    printf ("Inserire valore del secondo array\n");
    for (i=0; i<10; i++){
        scanf ("%d", &b[i]);
        }
    unione (a[VAL], b[VAL]);
    
    }
    
    void unione (int a[], int b []){
        int somma [20];
        int i, j, count=0;
        for (i=a[0]; i<a[10]; i++){
            for (j=b[0]; j<b[10]; j++)
                
        }
        for (i=0; i<20; i++)
            printf ("Il vettore risultante e' :", somma[i]);
    
        }

    ovviamente la parte dei due cicli for è sbagliata.. è proprio la che non capisco dove mettere le mani.. Grazie in anticipo
    Ultima modifica di LeleFT; 02-07-2014 a 12:12 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Utilizza un solo ciclo da 1 a 10 con una variabile i che ti serva da indice sia per il primo sia per il secondo array.

    Ma per assegnare i valori nel terzo array utilizza una variabile j che aumenti dentro al for ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    55
    e in che modo alterno l'assegnazione del 3 array?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    55
    for (i=0; i<10; i++){
    somma[j]=a[i];
    somma [j+1]=b[i];
    j=j+2;

    penso che così il ciclo sia giusto.. ma alla compilazione il programma crasha.. perchè?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Hai azzerato j prima dell'inizio del ciclo?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    55
    sisi

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quote Originariamente inviata da vicio_93 Visualizza il messaggio
    sisi
    Allora funziona ... se hai problemi, non derivano da questa parte di codice.

    Mostra tutto il codice se hai ancora errori.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    55
    #include<stdio.h>
    #include<stdlib.h>
    #define VAL 10

    void unione (int a[], int b[]);

    int main (){

    int a[VAL], b[VAL];
    int i;
    printf ("Inserire il valore del primo array\n");
    for (i=0; i<10; i++){
    scanf ("%d", &a[i]);}
    printf ("Inserire valore del secondo array\n");
    for (i=0; i<10; i++){
    scanf ("%d", &b[i]);
    }
    unione (a[i], b[i]);

    return 0;
    }

    void unione (int a[], int b []){
    int somma [20];
    int i, j=0;
    for (i=0; i<10; i++){
    somma[j]=a[i];
    somma [j+1]=b[i];
    j=j+2;
    }
    for (i=0; i<10; i++)
    printf ("Il vettore risultante e' :", somma[j]);

    }

    Non ho errori, ma il programma crasha dopo che inserisco i due primi array, quindi credo che il problema sia nella funzione somma

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    La funzione va chiamata così

    unione (a, b);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.