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

Discussione: Aiuto, linguaggio C

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    6

    Aiuto, linguaggio C

    Ciao a tutti, ho un problema a creare questo programmino, il testo dice:

    "Data una lista di prodotti, con il proprio nome e prezzo, calcolare con una funziona l'incremento del prezzo secondo una percentuale stabilita a priori da tastiera."


    Questo l'ho trovato su internet, a scuola non trovo stimoli, fanno programmi un po' elementari..
    Ho studiato solo le funzioni, non i puntatori, non so se dipende da questo che io non lo sappia finire.

    Ho usato le struct, dichiarate come globali, ma al momento che le richiamo all'interno delle funzioni, e modifico il valore della variabile (per capirci, l'array della struct), esce a video 0.000000

    Non so se posso postare il sorgente, quindi perfavore datemi qualche suggerimento T.T

    Grazie a chi mi aiuterà ^^

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    *Devi* postare il sorgente, spiegarlo e dirci cosa non va.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    6
    Eccolo.
    codice:
    #include <stdio.h>#include <conio.h>
    
    
    int n;
    void funz (float);
    
    
    struct elenco {
    float prezzo;
         char descrizione[50];}
         e[20];
    
    
    int main(void){
    int i;
    float incremento;
    
    
    
    
    printf ("Quanti prodotti vuoi inserire?:  ");
    scanf ("%d",&n); 
    
    
    for (i=0;i<n;i++){
    printf ("\nInserisci il prezzo del prodotto numero %d: ",i+1);
    scanf ("%f",&e[i].prezzo);
    printf ("\nInserisci nome prodotto:  ");
    scanf("%s",e[i].descrizione); }
    
    
    
    
    printf ("\n\n\n\nInserisci percentuale di incremento:  ");
    scanf ("%f",&incremento); 
    
    
    funz(incremento);
    
    
    for (i=0;i<n;i++)
    
    
    printf ("\nProdotto %d - %f - %s" , i+1, e[i].prezzo, e[i].descrizione);
    getch();
    return 0;}
    
    
    
    
    
    
    void funz(float b){
    int i;
    for (i=0;i<n;i++)
    e[i].prezzo=e[i].prezzo+b;
    return;}

    Così funziona, solo che se usare una funzione void come ho fatto, faccio una funzione float,
    al momento che ritorno e[i], esce 0.0000

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non ho capito ... come sarebbe la funzione che restituisce il float?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    6
    Perchè, una funzione non può restituire un float? :/

    Adesso ti invio il pezzo di codice che non funziona!

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Sì, ma mostra cosa hai scritto, sempre ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    6
    codice:
    float funz(float b){int i;
    for (i=0;i<n;i++)
    e[i].prezzo=e[i].prezzo+b;
    return e[i].prezzo;}


    Ma ora che ci penso, non è nemmeno possibile farlo, perchè ritornerebbe solamente l'ultimo valore!!

    Ci sono alternative?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Peggio, oltre l'ultimo ... ma dato che devi solo calcolare l'incremento, la funzione che modifica il vettore e non restituisce nulla è quella corretta. Il risultato dell'incremento è negli elementi del vettore.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    6
    Quindi ho fatto bene, grazie!

    Dato che a scuola facciamo la differenza tra "funzioni" e "procedure" ci era stato detto, di farlo con le funzioni, ma non capivo!
    Anche io sono d'accordo che sia più giusto a quel modo..

    Mi affido a te, che sei molto esperto, conosci qualche manuale completo sul C?

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Affidati ai libri. Ne esistono tantissimi in libreria e sono tutti completi, nel senso che parlano tutti del linguaggio. Altro discorso sono le librerie ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.