Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: [c]rotazione array

  1. #1

    [c]rotazione array

    volevo realizzare un semplice programma che ruota circolarmenten un array di una posizione...
    es[1,2,3,4] a [2,3,4,1] ovvimente non su 4 ma n...dovrebbe essere facile ma siccome non conosco il c non lo so fare...aiuto!!! grazie

  2. #2
    Se non conosci il C perché vuoi farlo proprio in questo linguaggio?
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  3. #3
    mi serviva in c VVoVe:

  4. #4
    mi serviva in c
    Sì, questo l'hai detto anche nel primo messaggio, però non hai spiegato perché ti serva proprio in C...
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  5. #5
    sto facendo un progetto ma non riesco a fare la funzione iterativa che fa lo shift di 1 posizione!
    grazie VVoVe:

  6. #6
    codice:
    /*Ruota un array di una posizione
    array: l'array su cui lavorare
    elements: numero di elementi dell'array*/
    void ruotaArray(int * array, size_t elements)
    {
        int temp=array[elements-1];
        memmove(array+1,array,elements*sizeof(int));
        *array=temp;
    }
    Non collaudato ma dovrebbe funzionare.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    codice:
    #include<iostream.h>
    //funzione
    void shift(int *vett, int n)
    {
    int temp=vett[0];
    for(int i=0;i<n-1;i++)
    vett[i]=vett[i+1];
    vett[n-1]=temp;
    }
    
    
    void main()
    {
    //inizializzazione
    const int n=8;
    int v[n];
    for (int i=0;i<n;i++)
    v[i]=i;
    //stampa visione vettore
    cout<<"Prima dello shift:\t";
    for (int i=0;i<n;i++)
    cout<<v[i]<<" ";
    //uso la funzione e stampo per verificare  lo shift
    cout<<"\nDopo lo shift:\t\t";
    shift(v,n);
    for (int i=0;i<n;i++)
    cout<<v[i]<<" ";
    //faccio restare in attesa il programma
    int i;
    cin>>i;
    }
    Dovrebbe funzionare...anche se e' in c++...bastano piccole modifiche...
    se stai imparando ti consiglio di farti le funzioni da te piuttosto di usare funzioni gi belle che pronte...
    ciao ciao

  8. #8
    Originariamente inviato da gfabio86


    Dovrebbe funzionare...anche se e' in c++
    • non includere iostream.h ma iostream;
    • Restituisci un intero da main:

    codice:
    In file included from /usr/include/c++/4.0.0/backward/iostream.h:31,
                     from main.cpp:1:
    /usr/include/c++/4.0.0/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
    main.cpp:12: error: '::main' must return 'int'

  9. #9
    con il borland compila e funziona...
    poi si sa che ogni compilatore ha le sue finezze^^

  10. #10
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Originariamente inviato da MItaly
    codice:
    /*Ruota un array di una posizione
    array: l'array su cui lavorare
    elements: numero di elementi dell'array*/
    void ruotaArray(int * array, size_t elements)
    {
        int temp=array[elements-1];
        memmove(array+1,array,elements*sizeof(int));
        *array=temp;
    }
    Non collaudato ma dovrebbe funzionare.
    Salvi l'ultimo elemento, sposti l'array di una posizione, reinserisci l'ultimo come primo.
    Geniale.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

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