Programmazione C

di il
51 risposte

Programmazione C

Buona a sera a tutti,volevo chiedervi se mi potevate aiutare a risolvere un programma in C dove bisogna scrivere una funzione che inverta la posizione degli elementi di un vettore di interi di cui sia fornita la dimensione(risolvere il problema senza usare vettori ulteriori).Scrivere un programma che dopo aver acquisito da tastiera un vettore di valori interi,lo visualizzi trasformato dall'invocazione della precedente funzione.Il void inserisci l'ho verificato funziona correttamente,invece la funzione dell'ordine decrescente e stampa_vettori non mi riescono.Volevo sapere se potevate aiutarmi.
#include<iostream>
#define DIM 100
using namespace std;
void inserisci(int v[]);
void ordine_decrescente(int v[]);
void stampa_vettori(int v[]);
int main() {
int v[DIM];
inserisci(v);
ordine_decrescente(v);
stampa_vettori(v);
system("Pause");
}
void inserisci(int v[]) {
for (int i = 0; i < DIM; i++) {
cout << "Inserisci i numeri interi [" << i << "]";
do {
cin >> v;
if (v < 0) {
cout << "Errore,inserisci di nuovo il numero";
}
} while (v < 0);
}
}
void ordine_decrescente(int v[]) {
int tmp;
int i;
for (i = 0; i < DIM - 1; i++);
for (int j = i + 1; j < DIM; j++) {
if (v > v[j]) {
tmp = v;
v = v[j];
v[j] = tmp;
return;
}
}
void stampa_vettori(int v[]) {
int i, j;
for (i = 0; i < DIM - 1; i++);
for (int j = i + 1; j < DIM; j++)
cout << "I numeri interi che hai inserito sono:" << v[j];
cout << "|";
}
}

51 Risposte

  • Re: Programmazione C

    Per postare il codice sul forum utilizza i TAG CODE e rispetta l'indentazione, altrimenti non si capisce nulla!

    In ogni caso sei sicuro che quel codice compila?
  • Re: Programmazione C

    Si,sono sicuro sulla funzione void inserisci,ma non sulle altre due funzioni.
  • Re: Programmazione C

    "Inverta la posizione degli elementi" significa che 1 2 3 diventa 3 2 1? Se sì non capisco il confronto che fai tra gli elementi successivi. Dovresti guardare il primo elemento e l'ultimo elemento , fare lo scambio (con una variabile ausiliare come in effetti fai) e incrementare e decrementare i due contatori. Finisce il ciclo quando i>=j
  • Re: Programmazione C

    Non ho capito cosa vuoi dire io sto utilizzando l'ordinamento a bolle
  • Re: Programmazione C

    Gli errori che mi da il codice sono sulla funzione stampa.
  • Re: Programmazione C

    Gastaldo ha scritto:


    Si,sono sicuro sulla funzione void inserisci,ma non sulle altre due funzioni.
    Rileggiti la funzione inserisci() che hai postato, non manca qualcosa?
    Se avessi seguito il mio consiglio sull'utilizzo del TAG CODE avresti potuto evitare l'equivoco.

    Sulla scia di quanto detto da @enricoscarsissimo... ipotizza di avere il seguente array:

    3 7 1 5 2

    "invertito" come diventerebbe?
  • Re: Programmazione C

    Non trovo la scritta code per fare il codice,mi potresti dire dove si trova?Sono nuovo,per questo non lo so
  • Re: Programmazione C

    Se usi il pulsante con "Editor completo" avrai un pulsante </> che inserisce i tag CODE correttamente.

    Nella funzione inserisci non hai inserito nessun dato nel vettore
  • Re: Programmazione C

    Nippolo ha scritto:


    Gastaldo ha scritto:


    Si,sono sicuro sulla funzione void inserisci,ma non sulle altre due funzioni.
    Rileggiti la funzione inserisci() che hai postato, non manca qualcosa?
    Se avessi seguito il mio consiglio sull'utilizzo del TAG CODE avresti potuto evitare l'equivoco.

    Sulla scia di quanto detto da @enricoscarsissimo... ipotizza di avere il seguente array:

    3 7 1 5 2

    75321 Nippolo si,manca qualcosa perchè quando scrivevo un numero negativo mi dava la scritta errore inserisci un nuovo numero e quando inserivo un nuovo numero non mi spuntava che aveva occupato l'indice successivo del vettore
  • Re: Programmazione C

    oregon ha scritto:


    Se usi il pulsante con "Editor completo" avrai un pulsante </> che inserisce i tag CODE correttamente.

    Nella funzione inserisci non hai inserito nessun dato nel vettore
    c
    Il problema sulla funzione inserisci non è nell'inserimento perchè ad esempio inserisco un numero sullo schermo mi appare v[0] 1,v[1] 5,il problema è che quando metto negativo mi considera il cout che ho messo nell'if ma quando inserisco dopo il messaggio del cout un numero non me lo conta come indice del vettore e ciò mi porta a reinserirlo non so come correggere questa parte,invece gli errori sono sulla funzione stampa_vettori non so come correggerli.
  • Re: Programmazione C

    oregon ha scritto:


    Se usi il pulsante con "Editor completo" avrai un pulsante </> che inserisce i tag CODE correttamente.

    Nella funzione inserisci non hai inserito nessun dato nel vettore
    Mi potresti spiegare come usare i tag code?
  • Re: Programmazione C

    Basta che all'inizio del codice scrivi code tra parentesi quadre e alla fine [/code]
  • Re: Programmazione C

    Gastaldo ha scritto:


    Mi potresti spiegare come usare i tag code?
    Gastaldo ... te l'ho appena detto ...

    Se usi il pulsante con "Editor completo" avrai un pulsante </> che inserisce i tag CODE correttamente.

    Oppure li inserisci a mano come ti ha detto enrico ...
  • Re: Programmazione C

    #include<iostream>
    #define DIM 100
    using namespace std;
    void inserisci(int v[]);
    void ordine_decrescente(int v[]);
    void stampa_vettori(int v[]);
    int main() {
    int v[DIM];
    inserisci(v);
    ordine_decrescente(v);
    stampa_vettori(v);
    system("Pause");
    }
    void inserisci(int v[]) {
    for (int i = 0; i < DIM; i++) {
    cout << "Inserisci i numeri interi [" << i << "]";
    do {
    cin >> v;
    if (v < 0) {
    cout << "Errore,inserisci di nuovo il numero";
    }
    } while (v < 0);
    }
    }
    void ordine_decrescente(int v[]) {
    int tmp;
    int i;
    for (i = 0; i < DIM - 1; i++);
    for (int j = i + 1; j < DIM; j++) {
    if (v > v[j]) {
    tmp = v;
    v = v[j];
    v[j] = tmp;
    return;
    }
    }
    void stampa_vettori(int v[]) {
    int i, j;
    for (i = 0; i < DIM - 1; i++);
    for (int j = i + 1; j < DIM; j++)
    cout << "I numeri interi che hai inserito sono:" << v[j];
    cout << "|";
    }
    }
    Fatto,ora potreste aiutarmi a correggere gli errori sulla funzione stampa_vettori e inserisci?
Devi accedere o registrarti per scrivere nel forum
51 risposte