Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337

    [C] array di numeri e funzione

    questo codice dovrebbe prendere una stirnga di numeri, moltiplicare ogni numero per tre e stampare, il tutto

    pechè non mi moltiplica per tre i numeri, li lascia sempre uguali?
    inoltre quando passo un array, non devo passare parametri ne ritornare nulla perchè tanto il puntatore modifica direttamente l'array originale, giusto?


    codice:
    #include <stdio.h>
    
    int vett[5]= {1,2,3,4,5};
    int i;
    
    void stampa();
    void moltiplica();
    
    int main(){
    
      stampa();
    
      moltiplica();
    }
    
    void stampa(){
    	for (i=0; i<5; i++){
    	printf("numero in posiizone % ->->-> %d \n", i, vett[i]);
    	}
    }
    
    void moltiplica(){
        for (i=0; i<5; i++){
    	vett[i]= (3*vett[i]);
    	printf("numero in posiizone % ->->-> %d \n", i, vett[i]);
    	}
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Nelle due printf hai dimenticato qualcosa ... devono essere cosi' ...

    printf("numero in posiizone %d ->->-> %d \n", i, vett[i]);

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337
    che scemo

  4. #4

    Re: [C] array di numeri e funzione

    Originariamente inviato da {-_-}
    questo codice dovrebbe prendere una stirnga di numeri, moltiplicare ogni numero per tre e stampare, il tutto

    pechè non mi moltiplica per tre i numeri, li lascia sempre uguali?
    inoltre quando passo un array, non devo passare parametri ne ritornare nulla perchè tanto il puntatore modifica direttamente l'array originale, giusto?


    codice:
    #include <stdio.h>
    
    int vett[5]= {1,2,3,4,5};
    int i;
    
    void stampa();
    void moltiplica();
    
    int main(){
    
      stampa();
    
      moltiplica();
    }
    
    void stampa(){
    	for (i=0; i<5; i++){
    	printf("numero in posiizone % ->->-> %d \n", i, vett[i]);
    	}
    }
    
    void moltiplica(){
        for (i=0; i<5; i++){
    	vett[i]= (3*vett[i]);
    	printf("numero in posiizone % ->->-> %d \n", i, vett[i]);
    	}
    }
    Scusa ma perchè fare due funzioni che fanno quasi la stessa cosa ?
    Io farei così:
    codice:
    void stampa_e_moltiplica(){
    	for (i=0; i<5; i++){
               vett[i] *= 3;
    	   printf("numero in posiizone % ->->-> %d \n", i, vett[i]);
    	}
    }
    molto più ottimizzato.
    Poi oltretutto, per comodità, esiste la scrittura
    codice:
    variabile *= valore;
    al posto di
    codice:
    variabile = variabile * valore;
    mi sembra più veloce.


  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Penso proprio che fosse codice "didattico" ... l'ottimizzazione non era il problema principale ...

  6. #6
    È DIDATTICO: volevo che imparasse un metodo migliore.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    E chi dice di no ... intendevo dire che, per chi inizia, e' bene rimanere sul codice che si sta studiando, piuttosto di complicare le cose con nozioni che magari si studieranno in seguito e che per ora non sono utili ...

    E poi, "didattico" anche perche', magari, il professore indica che "devono" essere usate funzioni separate per calcolo e stampa ...

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.