Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16
  1. #11
    grazie 1000 ,ma se invece dovessi mettere nel vettore una sequenza di numeri indifinita?

    ad. esempio per fare un programma in cui prendo in input un numero scelto da me di elementi
    leggerli nel vettore e poi scambiarli.
    es.


    #include <stdio.h>
    #include <stdlib.h>

    int main(int argc, char *argv[])
    { int vettore[1000];
    int i;
    int n;
    printf("Quanti numeri vuoi digitare? ");
    scanf("%d",&n);

    printf("Digita %d valori:\n",n);
    for(i=0;i<n;i++)
    scanf("%d",vettore);


    }

  2. #12
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se il numero degli elementi non è costante ma è scelto dall'utente allora devi "allocare dinamicamente" il vettore (non so se utilizzi già l'allocazione dinamica della memoria).

    Il resto non cambia ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #13
    no non la uso ancora

  4. #14
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Allora rimanda questo problema dopo che l'avrai studiata ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #15
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    ciao

    Puoi dare un occhiata alla funzione malloc()
    avevo visto tempo fa il codice di una funzione strreverse() che serviva per invertire
    l'ordine dei caratteri di una stringa , e visto che in C le stringhe sono array il codice
    lo si può usare per qualunque array di qualsiasi tipo
    il funzionamento è propio quello che ti hanno gia descritto , magari vedendo il codice
    e cercando di capire come funziona è piu semplice.
    interessante come funziona per numero di elementi pari e dispari bisogna ragionarci un
    po sopra. soluzione furba


    codice:
    #include <stdio.h>
    #include <stdlib.h>
    void inverti(int x[],int dim);
    int main(int argc, char *argv[])
    {
    int *vettore;
    int i;
    int n;
    printf("Quanti numeri vuoi digitare? ");
    scanf("%d",&n);
    vettore=(int*)malloc(sizeof(int)*n);//crei un array di n elementi
    printf("Digita %d valori:\n",n);
    for(i=0;i<n;i++){    
        
        printf(" %d elemento -->  ",i+1);
        scanf("%d",&vettore[i]);
    }
    inverti(vettore,n);
    free(vettore);
    system("pause");
    
    }
    
    
    void inverti(int x[],int dim)
    {
        /*
          Visto che gl' indici degli array partono 
          da 0 l'ultimo elemento sara dim -1
          la meta degli elementi sarà dim/2-1
          lo dico perchè mi sono sbagliato :)
          cosa interessante è che se gli elementi 
          sono in numero pari verranno invertiti 
          tutti se sono numero disperi l'elemento centrale non verra 
          considerato e sarà il "perno" 
          
          esempio:
              numero elementi 5
              diviso 2 arrotondato ad intero si ottiene 2
              vengono invertiti 1 col 5
              2 con 4
              e il tre rimane invariato 
        
        
        */
         
        int i,j,temp;
        int mid=(int)(dim/2)-1; //meta degli elementi arrotondati a intero
        for(i=0,j=dim-1;i<=mid;i++ ,j--)
        {
            temp=x[i];
            x[i]=x[j];
            x[j]=temp;
            
            
            }
        
         for (i=0;i<=dim-1;i++)
              printf("%d\n",x[i]);  
        
        
        }
    Tecnologia

  6. #16
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Prova a farla ricorsiva, se te hai una stringa s, di lunghezza n, puoi scambiare l' elemento i=0 di s con l' elemento j=n-1, poi richiami ricorsivamente la funzione passandogli i+1 e j-1, controllando sempre che sia vera la condizione (i+1)<=j .

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.