Litr Forum
24 Aprile , 2024, 01:27:42 *
Benvenuto! Accedi o registrati.

Accesso con nome utente, password e durata della sessione
Notizie: SMF - Just Installed!
 
  Home   Forum   Guida Accedi Registrati  
Pagine: [1]
  Stampa  
Autore Discussione: [HELP] Programmazione C  (Letto 4153 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
Diflucane
Hero Member
*****
Scollegato Scollegato

Messaggi: 1.812




WWW
« inserito:: 1 Marzo , 2007, 12:00:42 »

Eh...è passato parecchio tempo da quando ho studiato e usato il C, ho la necessità di aiutare un amico entro domani sera con un programmino facile facile ma forse qualcuno di voi ben più avezzo alla programmazione sa dirmi cosa c'è che non va. Mi date una mano? Per ora vi posto il codice e domattina la traccia (l'ho lasciata in ufficio)...

------------------------------------------------------------------------------------------

#include <stdio.h>
   struct impiegato
   {   
      char cognome [20];
      int livello;
      int ore_lavorate;
      float p_ore_lorde;
   };

int leggi_imp (File *,struct impiegato *)
void leggi_livelli(File *,struct impiegato *)
float s_lordo(File *,File *,struct impiegato *,int)
float tratt(File *,struct impiegato *,int,float *)
void scrivi(File *,struct impiegato *,int,float *)
void ordina(File *,struct impiegato *,int,float *)

void main ();
{
   int n;
   float stipendio, trattenuta,stipendio netto;
   File *fpi,*fpl,*fps;
   struct impiegato [100];
   fpi=fopen("impiegati.txt","r");
   n=leggi_imp(fpi,impiegati);
   fpl=fopen("livelli.txt","r");
   leggi_livelli(fpl,livelli);
   stipendio lordo=s_lordo(fpi,fpl,impiegato,n);
   trattenuta=tratt(fpi,impiegato,n,stipendio lordo);
   stipendio netto=stipendio lordo-trattenuta;
   fclose(fpi);
   fclose(fpl);
   fps=fopen("stipendi.txt","w");
   scrivi(fps,impiegato,n,stipendio netto);
   ordina(fps,impiegato,n,stipendio netto);
   fclose(fps);
}

int leggi_imp (File * fpi,struct impiegato *A);
{
   int i;
   i=0;
   while(fscanf(fpi"%s%d%d",A.cognome,A.livello,A.ore_lavorate)!=EOF);
   i++;
   return i;
}

void leggi_livelli(File *fpl,struct impiegato * B);
{
   int i;
   i=0;
   while(fscanf(fpi"%s%d%d",B.livello,B.p_ore_lorde)!=EOF);
   
}

float s_lordo(File * fpi,File * fpl,struct impiegato *P,int a);
{
   int i,j;
   float b;
   for(i=0;i<a-1;i++)
      {
         for(j=0;j<a;j++)
            
         {
            if(P[j].livello=Q.livello)

               b=P[j].ore_lavorate * Q.p_ore_lorde;
            return b;
         }

      }      

}

float tratt(File * fpi,struct impiegato *C,int a,float *d);
{
   int i;
   float b;
   for (i=0;i<a;i++)
      {
         if
            (C.livello>4)
            {
               b=d*(25/100);
               return b;
            }
         else
            (C.livello<4)
            {
               b=d*(20/100);
               return b;
            }
      }
}

void scrivi(File * fps,struct impiegato *P,int a,float *c);
{
   int i;
   for(i=0;i<a;i++)
      {
      fscanf(fps"%s%f",P.cognome,P.stipendio netto);
      }
}

void ordina(File * fps,struct impiegato *Q,int a, float *b):

{
   int i,imax,j;
   struct temp;
   i=0;
   for(i=0;i<a-1;i++)
      {
      imax=i;
      for(j=0;j<a;j++)
         {
            if(Q.stipendio netto>Q[imax].stipendio netto)
               {
                  imax=j;
                  temp=Q;
                  Q=Q[imax];
                  Q[imax]=temp;
               }
         }
      }
}

---------------------------------------------------------------------------------------------


Qualunque indicazione è bene accetta :flowers:  
« Ultima modifica: 1 Marzo , 2007, 12:01:30 da Diflucane » Registrato

- - - - - - - - - - - - - - - - -
"Hanno sparato a Serpico..."
"Chi è stato un poliziotto?"
"No, ma c'erano almeno 6 colleghi pronti a farlo"



Joda Lo Spammer: «« Non c'è provare...c'è spammare o nn spammare »»


5/2/2004: Termina la Prima Era con la caduta di EWS.
8/2/2004: Dopo tre giorni di tempi bui si torna alla civiltà: comincia l'era LiTr

"Chi non crea non può fare a meno di distruggere" Farenheit 451

Remember remember the fifth of November
Gunpowder, treason and plot.
I see no reason why gunpowder, treason
Should ever be forgot...
[/color][/size]

Avatar by Fedonair....grazie Fed!!!
http://utenti.lycos.it/heineken666cl/Laurea.gif
keiske
gli Antichi Casinisti
Hero Member
*****
Scollegato Scollegato

Messaggi: 1.907




WWW
« Risposta #1 inserito:: 1 Marzo , 2007, 01:08:03 »

Appena ci copi anche la traccia ci dò un'occhiata anche io :flowers:

Senza traccia sono troppo arrugginito per ragionare sul codice da solo :blink:
Registrato

Parla un JUS: "XXXXXX il tuo sfogo è comprensibile ma esagerato. Condivido però a pieno i contenuti della tua proposta"
Dopo 2 ore parla lo stesso JUS: "Se il capo ordina io sinceramente lo seguo e purtroppo devo dissentire da XXXXXX"
Se qualcuno diventa così zerbino lo metto fuori subito Felice
---------------
Parla Silvio Berlusconi: "Dopo questo disastro Prodi ha l'obbligo di dimettersi", dichiara l'ex premier. "per ragioni di coerenza politica, di coerenza costituzionale, di coerenza etica, deve rassegnare immediatamente le proprie dimissioni nelle mani del presidente della Repubblica". <- Non c'è bisogno che tu lo dica. Tu ci hai messo due settimane quando era il tuo turno, coglione.

Sono il coglione numero 1 di LiTr. Avanti il numero 2.
anzi COGLIONE E INDEGNO!

«Cioè, lei non ha mai mangiato la Sacher Torte? Vabbeh, facciamoci del male» (Cit.)

«Uno dei più grossi problemi di questo paese è che la maggioranza delle importazioni vengono dall'estero» (Cit. G.W.Bush)

La mia produzione
-------------------------------------------------------
We are the enkeys, We are the people [L]ost n [T]raslation and [R]e-found

Diflucane
Hero Member
*****
Scollegato Scollegato

Messaggi: 1.812




WWW
« Risposta #2 inserito:: 1 Marzo , 2007, 01:40:41 »

Grazie Kei, ecco la traccia :-)

Registrato

- - - - - - - - - - - - - - - - -
"Hanno sparato a Serpico..."
"Chi è stato un poliziotto?"
"No, ma c'erano almeno 6 colleghi pronti a farlo"



Joda Lo Spammer: «« Non c'è provare...c'è spammare o nn spammare »»


5/2/2004: Termina la Prima Era con la caduta di EWS.
8/2/2004: Dopo tre giorni di tempi bui si torna alla civiltà: comincia l'era LiTr

"Chi non crea non può fare a meno di distruggere" Farenheit 451

Remember remember the fifth of November
Gunpowder, treason and plot.
I see no reason why gunpowder, treason
Should ever be forgot...
[/color][/size]

Avatar by Fedonair....grazie Fed!!!
http://utenti.lycos.it/heineken666cl/Laurea.gif
PowerGod
LiTr MOD
Hero Member
*****
Scollegato Scollegato

Messaggi: 873




WWW
« Risposta #3 inserito:: 1 Marzo , 2007, 02:43:36 »

ha qualcosa che non va nel senso che:

1) non viene compilato ? in tal caso sarebbe comodo sapere il messaggio d'errore (e il compilatore usato...)
2) non parte ?
3) funzia, ma non risolve il problema della traccia ?

se stasera trovo un po' di tempo ci do una occhiata, ma dovrei usare il compilatore di linux... che non ho MAI usato...  Scioccato  
Registrato


desperados
Sr. Member
****
Scollegato Scollegato

Messaggi: 416




WWW
« Risposta #4 inserito:: 1 Marzo , 2007, 07:30:16 »

bho, di C praticamente non ho fatto nulla, ma:

n=leggi_imp(fpi,impiegati);

non mi torna... non mi pare tu abbia inizializzato impiegati... a meno che non lo faccia la funzione. o volevi passare il vettore? non credo nemmeno questo...
Registrato

What a filthy job! Could be worse! How? Could be raining! A CRACK OF THUNDER

La storia insegna, ma non ha scolari

Non siamo più cittadini, popolo, persone, ma consumatori e risorse umane

I cretini per strada sono come i Gremlins: con l'acqua si moltiplicano...

Io non sono qui per salvare l'anima di nessuno, tanto meno la mia...
Diflucane
Hero Member
*****
Scollegato Scollegato

Messaggi: 1.812




WWW
« Risposta #5 inserito:: 1 Marzo , 2007, 10:18:33 »

eh...

allora quando il mio amico tenta di compilare gli vengono dati una 20ina di errori. e' l'unica cosa che so....avrei provato anche io ma non ho un compilatore e sto tornando a casa tardi tutte le sere..

@
desp io penso che la funzione voglia passare il vettore...se così fosse dove si cela il problema?
Registrato

- - - - - - - - - - - - - - - - -
"Hanno sparato a Serpico..."
"Chi è stato un poliziotto?"
"No, ma c'erano almeno 6 colleghi pronti a farlo"



Joda Lo Spammer: «« Non c'è provare...c'è spammare o nn spammare »»


5/2/2004: Termina la Prima Era con la caduta di EWS.
8/2/2004: Dopo tre giorni di tempi bui si torna alla civiltà: comincia l'era LiTr

"Chi non crea non può fare a meno di distruggere" Farenheit 451

Remember remember the fifth of November
Gunpowder, treason and plot.
I see no reason why gunpowder, treason
Should ever be forgot...
[/color][/size]

Avatar by Fedonair....grazie Fed!!!
http://utenti.lycos.it/heineken666cl/Laurea.gif
keiske
gli Antichi Casinisti
Hero Member
*****
Scollegato Scollegato

Messaggi: 1.907




WWW
« Risposta #6 inserito:: 1 Marzo , 2007, 10:40:48 »

Dico una cosa, magari è una cazzata, ma sono state dichiarate due variabili "stipendio lordo" e "stipendio netto" con lo spazio tra le due parole... non mi sembra una sintassi corretta quella... :blink:
Registrato

Parla un JUS: "XXXXXX il tuo sfogo è comprensibile ma esagerato. Condivido però a pieno i contenuti della tua proposta"
Dopo 2 ore parla lo stesso JUS: "Se il capo ordina io sinceramente lo seguo e purtroppo devo dissentire da XXXXXX"
Se qualcuno diventa così zerbino lo metto fuori subito Felice
---------------
Parla Silvio Berlusconi: "Dopo questo disastro Prodi ha l'obbligo di dimettersi", dichiara l'ex premier. "per ragioni di coerenza politica, di coerenza costituzionale, di coerenza etica, deve rassegnare immediatamente le proprie dimissioni nelle mani del presidente della Repubblica". <- Non c'è bisogno che tu lo dica. Tu ci hai messo due settimane quando era il tuo turno, coglione.

Sono il coglione numero 1 di LiTr. Avanti il numero 2.
anzi COGLIONE E INDEGNO!

«Cioè, lei non ha mai mangiato la Sacher Torte? Vabbeh, facciamoci del male» (Cit.)

«Uno dei più grossi problemi di questo paese è che la maggioranza delle importazioni vengono dall'estero» (Cit. G.W.Bush)

La mia produzione
-------------------------------------------------------
We are the enkeys, We are the people [L]ost n [T]raslation and [R]e-found

Diflucane
Hero Member
*****
Scollegato Scollegato

Messaggi: 1.812




WWW
« Risposta #7 inserito:: 1 Marzo , 2007, 11:24:51 »

hai ragione, quello (a quanto ricordo) è di sicuro un errore :+1:

Sotto con gli altri

(io intanto sto cercando qualche compilatore per provarlo)
Registrato

- - - - - - - - - - - - - - - - -
"Hanno sparato a Serpico..."
"Chi è stato un poliziotto?"
"No, ma c'erano almeno 6 colleghi pronti a farlo"



Joda Lo Spammer: «« Non c'è provare...c'è spammare o nn spammare »»


5/2/2004: Termina la Prima Era con la caduta di EWS.
8/2/2004: Dopo tre giorni di tempi bui si torna alla civiltà: comincia l'era LiTr

"Chi non crea non può fare a meno di distruggere" Farenheit 451

Remember remember the fifth of November
Gunpowder, treason and plot.
I see no reason why gunpowder, treason
Should ever be forgot...
[/color][/size]

Avatar by Fedonair....grazie Fed!!!
http://utenti.lycos.it/heineken666cl/Laurea.gif
Jintetsu
Hero Member
*****
Scollegato Scollegato

Messaggi: 791




« Risposta #8 inserito:: 3 Marzo , 2007, 12:02:25 »

Citazione
if(P[j].livello=Q.livello)

Penso che serva il doppio uguale per il confronto, utilizzandone uno solo è una assegnazione  Linguaccia  
Registrato


IT'S THE DEVIL'S WAY NOW
THERE IS NO WAY OUT
YOU CAN SCREAM
& YOU CAN SHOUT
IT IS TOO LATE NOW
BECAUSE
YOU HAVE NOT BEEN
PAYING ATTENTION
[/b]
Pagine: [1]
  Stampa  
 
Vai a:  


Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines XHTML 1.0 valido! CSS valido!
SimplePortal 2.3.2 © 2008-2010, SimplePortal