Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    13

    [C] Acquisizione sequenza di numeri ordinata

    Salve, vorrei premettere che sto studiando programmazione per un esame universitario e che al momento sono ferma agli array.
    Per esercitarmi ho cercato degli esercizi online con le soluzioni.
    Ho provato a fare l'esercizio 2 di questo documento ma mi sono fermata nel punto in cui si deve inserire il numero e deve trovarsi già ordinato tra la serie di numeri dell'array (http://zeus.ing.unibs.it/infoa/Lucid...ettori1011.pdf)
    Ho notato che il programma che ho fatto io è totalmente diverso da quello fornito nella soluzione... Potete aiutarmi nel modo più semplice possibile? Grazie.

    codice:
    #include <stdio.h>
    int main (){
       int num[19];
       int i;
       int valore;
    printf ("INSERISCI UNA SERIE DI NUMERI IN ORDINE CRESCENTE\n");
      for (i=0; i<19; i++)
      scanf ("%d", &num[i]);
    for (i=0; i<19; i++){
      printf ("IL VETTORE IN POSIZIONE [%d] e' %d\n", i, num[i]);
     
    printf ("INSERIRE UN VALORE CHE COMPARIRA' NELLA SERIE DI NUMERI: ");
    scanf ("%d", &valore);
    
    .....

    Non so più come continuare.
    Grazie in anticipo.
    Ultima modifica di Slokez; 12-09-2014 a 17:37

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Queste due righe costituiscono il tuo codice per l'inserimento dei numeri

    codice:
    for (i=0; i<19; i++)
      scanf ("%d", &num[i]);
    Ma cosa garantisce che siano in ordine crescente? E cosa permette di inserirne anche meno di 19?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    13
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Queste due righe costituiscono il tuo codice per l'inserimento dei numeri

    codice:
    for (i=0; i<19; i++)
      scanf ("%d", &num[i]);
    Ma cosa garantisce che siano in ordine crescente? E cosa permette di inserirne anche meno di 19?
    Lo chiede nell'esercizio: "richiede all'utente, in ordine strettamente crescente, l'inserimento di una serie di numeri interi (al massimo 19), "
    Comunque come vedi alla fine del programma avevo chiesto di inserire il numero e con scanf l'avevo assegnato a valore... Non so solamente come ordinare adesso l'array con il valore compreso.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quote Originariamente inviata da Slokez Visualizza il messaggio
    Lo chiede nell'esercizio: "richiede all'utente, in ordine strettamente crescente, l'inserimento di una serie di numeri interi (al massimo 19), "
    Appunto ... e tu non lo fai. Fra l'altro le specifiche indicano

    L'acquisizione termina dopo l'inserimento del diciannovesimo numero, o dopo che l'utente inserisce un numero
    non ordinato (questo numero non deve essere salvato);


    Comunque come vedi alla fine del programma avevo chiesto ...

    Non ci siamo capiti ... già da quelle due righe di codice la tua soluzione è sbagliata..
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    13
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Appunto ... e tu non lo fai. Fra l'altro le specifiche indicano

    L'acquisizione termina dopo l'inserimento del diciannovesimo numero, o dopo che l'utente inserisce un numero
    non ordinato (questo numero non deve essere salvato);





    Non ci siamo capiti ... già da quelle due righe di codice la tua soluzione è sbagliata..
    Sì appunto non ci capiamo ahah! Io già il codice che mi hai fornito tu l'ho inserito all'inizio! Devo riscriverlo? A quale pro? vorrei capire meglio cortesemente ^^

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quote Originariamente inviata da Slokez Visualizza il messaggio
    Sì appunto non ci capiamo ahah! Io già il codice che mi hai fornito tu l'ho inserito all'inizio! Devo riscriverlo? A quale pro? vorrei capire meglio cortesemente ^^
    Si vede che non sei pratico di forum ... ho solo evidenziato la parte del tuo codice che è "sbagliata" e ti ho invitato, con alcune domande, a riflettere sul perché. Capito?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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

    Ciao

    Ciao, il problema può essere risolto con due cicli, while o for, e opportune condizioni di termine ciclo.

    1) acquisisci fuori dal ciclo il primo numero e lo salvi nella prima posizione dell'array, perché ti servirà nella condizione del ciclo

    richiede all'utente, in ordine strettamente crescente, l'inserimento di una serie di numeri interi (al massimo 19), salvandoli nel vettore
    num1. L'acquisizione termina dopo l'inserimento del
    diciannovesimo numero, o dopo che l'utente inserisce un numero
    non ordinato (questo numero non deve essere salvato);
    Questo punto, ti impone una condizione di uscita ciclo relativamente complessa, per soddisfare le richieste, la condizione dovrà essere :
    numeri minore di 19 e numero maggiore del precedente, inserendo numero minore del precedente, non ordinato,la condizione è falsa .
    codice:
    scanf("%d",&num);
    array[0]=num;
    scanf(%d",&num);
    for(i=1;i<19 && array[i-1]<num;i++)
    {
         array[i]=num;
         scanf(%d",&num);
    
    }
    acquisisce dall'utente un numero intero N e lo inserisce nel vettore,
    nella posizione corretta (il vettore deve rimanere in ordine
    crescente);
    Qui scorrerai l'array acquisto con un ciclo, all'interno del ciclo poni un controllo

    se N > del precedente e minore del successivo rispetto al contatore, inserimento di N in quella posizione e uscita ciclo .


    Probabilmente non è la soluzione ottimale, ma solo un suggerimento come base di partenza.
    Tecnologia

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    13
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Si vede che non sei pratico di forum ... ho solo evidenziato la parte del tuo codice che è "sbagliata" e ti ho invitato, con alcune domande, a riflettere sul perché. Capito?
    Oh si vede? ahahaha grazie per la pazienza allora!

    [QUOTE=torn24;25248416]Ciao, il problema può essere risolto con due cicli, while o for, e opportune condizioni di termine ciclo.

    1) acquisisci fuori dal ciclo il primo numero e lo salvi nella prima posizione dell'array, perché ti servirà nella condizione del ciclo

    Ok tutto chiaro!! Grazie mille ^^ adesso provvedo a modificare il programma.

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.