qualkuno può aiutarmi??
nn ho idea da dv partire!!
come potrei acquisire un array tramite funzione?
grazie mille anticipatamente!
qualkuno può aiutarmi??
nn ho idea da dv partire!!
come potrei acquisire un array tramite funzione?
grazie mille anticipatamente!
in pratica nn mi stampa l'array dv averlo acquisito nn trovo l'errore
!!!!!!!!
#include <stdio.h>
int fusione(int n_val1);
main ()
{
int n_val1; //numero di valori del 1° array.
//Inserimento dei valori del 1° e 2° array da fondere.
printf ("Inserite il numero di valori del 1 array: ");
scanf ("%d",&n_val1);
n_val1=fusione(n_val1);
system("pause");
}
int fusione(int n_val1)
{
int vet1[30]; //1° array da fondere.
int vet2[30]; //2° array da fondere.
int vettore[60]; //array finale.
int n_val2; //numero di valori del 2° array.
int i,j,k=1; //indici array.
for (i=1;i<=n_val1;i++){
printf ("Inserite il %d valore: ",i);
scanf ("%d",&vet1[i]);
}
printf ("Inserite il numero di valori del 2 array: ");
scanf ("%d",&n_val2);
for (j=1;j<=n_val2;j++){
printf ("Inserite il %d valore: ",j);
scanf ("%d",&vet2[j]);
}
//Fusione dei 2 array dati in un unico array finale e stampa di quest'ultimo.
printf ("\nL'array finale e' il seguente:\n");
while ((i<=n_val1)&&(j<=n_val2)){
if (vet1[i]<vet2[j]){
vettore[k]=vet1[i];
printf ("%d ",vettore[k]);
i++;
}
else{
vettore[k]=vet2[j];
printf ("%d ",vettore[k]);
j++;
}
k++;
}
if (j>n_val2){
while (i<=n_val1){
vettore[k]=vet1[i];
printf ("%d ",vettore[k]);
i++;
}
}
else{
while (j<=n_val2){
vettore[k]=vet2[j];
printf ("%d ",vettore[k]);
j++;
}
}
return n_val1;
}
Quando esprimerai, in italiano e con frasi di senso compiuto, quello che devi fare con il programma e il problema che hai, allora ti si potra' dare una mano ...
codice:#include <stdio.h> #include <stdlib.h> int fusione(int n_val1); int main ( void ) { int n_val1; //numero di valori del 1° array. //Inserimento dei valori del 1° e 2° array da fondere. printf ("Inserite il numero di valori del 1 array: "); scanf ("%d",&n_val1); n_val1=fusione(n_val1); // a cosa serve questo assegnamento? printf("\n\n\n"); // miglioriamo la formattazione system("pause"); } int fusione(int n_val1) { int vet1[30]; //1° array da fondere. int vet2[30]; //2° array da fondere. int vettore[60]; //array finale. int n_val2; //numero di valori del 2° array. int i,j,k=0; //indici array. for ( i=0 ; i<n_val1 ; i++ ){ // gli indici deveno partire da 0 printf ("Inserite il %d valore: ",i+1); scanf ("%d",&vet1[i]); } printf ("Inserite il numero di valori del 2 array: "); scanf ("%d",&n_val2); for ( j=0 ; j<n_val2 ; j++ ){ // gli indici devono partire da 0 printf ("Inserite il %d valore: ",j+1); scanf ("%d",&vet2[j]); } //Fusione dei 2 array dati in un unico array finale e stampa di quest'ultimo. printf ("\nL'array finale e' il seguente:\n"); i=0; j=0; // devi azzerare gli indici while (k<n_val1+n_val2){ // devi terminare quando k=n_val1+n_val2 if (vet1[i]<vet2[j]){ vettore[k]=vet1[i]; printf ("%d ",vettore[k]); i++; } else{ vettore[k]=vet2[j]; printf ("%d ",vettore[k]); j++; } k++; } if (j>n_val2){ while (i<n_val1){ vettore[k]=vet1[i]; printf ("%d ",vettore[k]); i++; } } else{ while (j<n_val2){ vettore[k]=vet2[j]; printf ("%d ",vettore[k]); j++; } } return n_val1; // perchè ritorni questo valore?? // è un valore che hai già passato alla funzione }
La fase di inserimento potrebbe essere migliorata.
Ciao ciao
Ciao a tutti!!! sono nuova di qui... avrei un problema che non riguarda esattamente l'ascquisizione di un array ma comunque c'entra con gli array(non volevo aprire un nuovo topic perchè forse già esiste qualcosa di simile e non me ne sono accorta...perciò scrivo qui...)
Dopo aver dichiarato due array, ad esempio a e b, pongo a[0]=b[0] e poi faccio cout<<b[0] per stampare il primo elemento di b, ma escono strani numeri... dov'è che sbaglio???grazie...
E invece devi aprire un nuovo thread ... quello a cui ti sei collegata non c'entra nulla con il tuo problema ...
...vabbè apro il nuovo thread...