Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Politica, accademia e industria a confronto su mercato unico, sicurezza e competitività. Nei laboratori di Vimercate, Nokia ha mostrato le nuove generazioni di chip ottici e i test che ogni prodotto deve superare prima di arrivare sul mercato
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi
Abbiamo assemblato e provato la Fiido Nomads Pro, evoluzione del modello da trekking già presente nella gamma, che migliora in tutto, soprattutto grazie al motore centrale, fluido e potente. Ottima app, costruzione solida e prezzo ok completano il quadro
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto
Lo chassis in Ceraluminium è il cuore di questo notebook in edizione 2026, un modello pensato per garantire produttività con le tipiche applicazioni di produttività personale e capace di offrire un'autonomia di funzionamento lontano dalla presa di corrente da riferimento. Potenza, facilità di trasporto e costruzione robusta tutto in un notebook compatto.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-06-2005, 17:25   #1
emiliano30
Member
 
Iscritto dal: Feb 2005
Messaggi: 162
[c]prog del prof

sto anche guardando un progr fatto da un mio prof. che oltre al fatto che non riesco a compilarlo non lo capisco(sicuramente sono io che sono una pippa)...mi sembra caotico...
chi se la sente di commentarlo(spiegarlo)? p.s non commenti personali commenti del tipo.../*..........*/


Codice:
/** Esercizio 1
Programma che legge da input una serie di Cognomi e
li mette in un vettore di strutture poi ordinadolo per stipendio
allocando solo i necessari
**/
/** Svolgimento **/
#include <stdio.h>
#include <string.h>
/** Numero massimo di elementi **/
#define MAXRECORDS 100
char cognome[30];
char c;
int errno;
int sum=0;
/** Struttura dei record **/
struct nomi{
     char cognome[30];
     int stip;
} ;
struct nomi *rec[MAXRECORDS];
void main(void)
{
    int i, j, iNum;
    /** Leggi da input le stringhe fino a che nel cognome ci sia '.'
    o il massimo dei records **/
       for (iNum = 0; iNum < MAXRECORDS; iNum++)
{
rec[iNum] = (struct nomi *) malloc(sizeof(struct nomi));
if (rec[iNum] == NULL)
{
printf("Errore allocazione memoria:[%ld]!!\n", errno);
exit(1);
}
printf("\nInserisci il cognome (. per terminare): ");
gets(rec[iNum]->cognome);
if (rec[iNum]->cognome[0]=='.')
break;
printf("Inserisci lo stipendio: ");
scanf("%d",&rec[iNum]->stip);
sum=sum+rec[iNum]->stip;
c=getchar();
}
/** ordino per ordine di stipendio **/
for (i = 0; i < iNum; i++)
for (j=i+1; j<iNum; j++)
if(rec[i]->stip > rec[j]->stip)
scambia(&rec[i], &rec[j]);
/** Loop di stampa **/
for (i = 0; i < iNum; i++)
printf("Record[%d]: [%s][%d]\n",i,rec[i]->cognome,rec[i]->stip);
/** Loop di free memoria **/
for (i = 0; i < iNum; i++)
free(rec[i]);
/** stampo la media ***/
if(iNum>0)
printf("\n media = %f\n",(float)sum/(float)(iNum));
}
/*** procedura di scambio ***/
scambia(struct nomi *Rec_i, struct nomi *Rec_j)
{
struct nomi temp;
strcpy(temp.cognome,Rec_i->cognome);
temp.stip=Rec_i->stip;
strcpy(Rec_i->cognome,Rec_j->cognome);
Rec_i->stip=Rec_j->stip;
strcpy(Rec_j->cognome,temp.cognome);
1
Rec_j->stip=temp.stip;
}
emiliano30 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2005, 18:22   #2
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
fa quello scritto in alto

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2005, 18:29   #3
Gica78R
Senior Member
 
L'Avatar di Gica78R
 
Iscritto dal: Mar 2005
Messaggi: 1653
Sicuro che qui:
Codice:
/** Struttura dei record **/
struct nomi{
     char cognome[30];
     int stip;
} ;
struct nomi *rec[MAXRECORDS];
ci vada l'asterisco nella dichiarazione di rec? Cioe' rec e' un puntatore ad un array di MAXRECORDS nomi?
Allora qui
Codice:
rec[iNum] = (struct nomi *) malloc(sizeof(struct nomi));
c'e' forse qualcosa che non va, o sbaglio?
__________________
gica78r@ncc-1701:~$ tar -c
tar: Codardamente mi rifiuto di creare un archivio vuoto
Gica78R è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2005, 18:35   #4
emiliano30
Member
 
Iscritto dal: Feb 2005
Messaggi: 162
ho fatto copia e incolla con il prog del prof
che significa che sto studiando su cose sbagliate?
emiliano30 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2005, 18:44   #5
Gica78R
Senior Member
 
L'Avatar di Gica78R
 
Iscritto dal: Mar 2005
Messaggi: 1653
Quote:
Originariamente inviato da emiliano30
ho fatto copia e incolla con il prog del prof
che significa che sto studiando su cose sbagliate?
Lo provo tra un po' e ti dico... adesso sono un po' bollito
Magari sbaglio...
__________________
gica78r@ncc-1701:~$ tar -c
tar: Codardamente mi rifiuto di creare un archivio vuoto
Gica78R è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2005, 20:48   #6
emiliano30
Member
 
Iscritto dal: Feb 2005
Messaggi: 162
sarebbe interessante un commento di cionci e ziosilvio,che mi sembrano due con le p...e
emiliano30 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2005, 21:07   #7
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Quote:
Originariamente inviato da emiliano30
sarebbe interessante un commento di cionci e ziosilvio,che mi sembrano due con le p...e
non è che noi siamo scemi rispettando ovviamente i due utenti che hai citato che sanno un bordello.
Sai com'è se ti metti e guardi il codice capisci

Codice:
/** Esercizio 1
Programma che legge da input una serie di Cognomi e
li mette in un vettore di strutture poi ordinadolo per stipendio
allocando solo i necessari
**/
/** Svolgimento **/
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <windows.h>

/** Numero massimo di elementi **/
#define MAXRECORDS 100

void scambia(struct nomi *Rec_i, struct nomi *Rec_j);


char cognome[30];
char c;
int errno;
int sum=0;
/** Struttura dei record **/
struct nomi{
     char cognome[30];
     int stip;
} ;
struct nomi *rec[MAXRECORDS];
int  main(void)
{
    int i, j, iNum;
    /** Leggi da input le stringhe fino a che nel cognome ci sia '.'
    o il massimo dei records **/
    for (iNum = 0; iNum < MAXRECORDS; iNum++){
        rec[iNum] = (struct nomi *) malloc(sizeof(struct nomi));
        if (rec[iNum] == NULL){
           printf("Errore allocazione memoria:[%ld]!!\n", errno);
           exit(1);
        }
        printf("\nInserisci il cognome (. per terminare): ");
        gets(rec[iNum]->cognome);
        if (rec[iNum]->cognome[0]=='.')
           break;
        printf("Inserisci lo stipendio: ");
        scanf("%d",&rec[iNum]->stip);
        sum=sum+rec[iNum]->stip;
        c=getchar();
    }
    /** ordino per ordine di stipendio **/
    for (i = 0; i < iNum; i++)
        for (j=i+1; j<iNum; j++)
            if(rec[i]->stip > rec[j]->stip)
                            scambia(rec[i], rec[j]);
    /** Loop di stampa **/
    for (i = 0; i < iNum; i++)
        printf("Record[%d]: [%s][%d]\n",i,rec[i]->cognome,rec[i]->stip);
    /** Loop di free memoria **/
    for (i = 0; i < iNum; i++)
        free(rec[i]);
    /** stampo la media ***/
    if(iNum>0)
              printf("\n media = %f\n",(float)sum/(float)(iNum));
              
    return (1);
}
/*** procedura di scambio ***/
void scambia(struct nomi *Rec_i, struct nomi *Rec_j)
{
struct nomi temp;
strcpy(temp.cognome,Rec_i->cognome);
temp.stip=Rec_i->stip;
strcpy(Rec_i->cognome,Rec_j->cognome);
Rec_i->stip=Rec_j->stip;
strcpy(Rec_j->cognome,temp.cognome);
Rec_j->stip=temp.stip;
}
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2005, 21:22   #8
sirus
Senior Member
 
Iscritto dal: Mar 2004
Messaggi: 16053
beh mi sembra molto semplice come programma, nulla da dire si commenta da solo direi
ma che hanno frequenti?
sirus è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2005, 22:22   #9
Gica78R
Senior Member
 
L'Avatar di Gica78R
 
Iscritto dal: Mar 2005
Messaggi: 1653
Quote:
Originariamente inviato da Gica78R
Lo provo tra un po' e ti dico... adesso sono un po' bollito
Magari sbaglio...
Arieccome... mi ci sono voluti due piattoni di pasta e fagioli + caffe' x rimettermi in sesto. Ho pure dato un'occhiata al programma... Riguardo la dichiarazione di rec, e' giusto... C'era cmq un errore qui:
Codice:
for (i = 0; i < iNum; i++)
for (j=i+1; j<iNum; j++)
if(rec[i]->stip > rec[j]->stip)
scambia(&rec[i], &rec[j]);
alla funzione scambia() non devi passare l'indirizzo di rec[i] e rec[j], quindi togli '&'.
Cmq ti e' gia' stata suggerita la versione funzionante in ambiente win...

Ciao...
__________________
gica78r@ncc-1701:~$ tar -c
tar: Codardamente mi rifiuto di creare un archivio vuoto
Gica78R è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2005, 09:36   #10
emiliano30
Member
 
Iscritto dal: Feb 2005
Messaggi: 162
ragazzi non volevo mica offendere qualcuno...ma se lo fatto senza volerlo scusatemi , p.s non ti ho dato dello scemo Fenomeno....
emiliano30 è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2005, 09:41   #11
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Quote:
Originariamente inviato da emiliano30
ragazzi non volevo mica offendere qualcuno...ma se lo fatto senza volerlo scusatemi , p.s non ti ho dato dello scemo Fenomeno....
ok

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2005, 09:51   #12
emiliano30
Member
 
Iscritto dal: Feb 2005
Messaggi: 162
come mai che su v.c lo compila mentre su dev no?
emiliano30 è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2005, 09:53   #13
emiliano30
Member
 
Iscritto dal: Feb 2005
Messaggi: 162
e poi conio non fa parte della lib c++...
emiliano30 è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2005, 09:58   #14
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Quote:
Originariamente inviato da emiliano30
come mai che su v.c lo compila mentre su dev no?
dev lo compila ho usato quello

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2005, 09:59   #15
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Quote:
Originariamente inviato da emiliano30
e poi conio non fa parte della lib c++...
conio è una libreria di c/c++ non standard solo per ambienti windows.

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2005, 10:05   #16
emiliano30
Member
 
Iscritto dal: Feb 2005
Messaggi: 162
possibile che usando lo stesso compilatore otteniamo differenti risultati?



16 [Warning] `struct nomi' declared inside parameter list


16 [Warning] its scope is only this definition or declaration, which is probably not what you want

53 [Warning] passing arg 1 of `scambia' from incompatible pointer type

53 [Warning] passing arg 2 of `scambia' from incompatible pointer type

68 conflicting types for `scambia'
emiliano30 è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2005, 10:11   #17
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Codice:
/* LINUX VERSION */


/** Esercizio 1
Programma che legge da input una serie di Cognomi e
li mette in un vettore di strutture poi ordinadolo per stipendio
allocando solo i necessari
**/
/** Svolgimento **/
#include <stdio.h>
#include <string.h>


/** Numero massimo di elementi **/
#define MAXRECORDS 100

char cognome[30];
char c;
int errno;
int sum=0;
/** Struttura dei record **/
struct nomi{
     char cognome[30];
     int stip;
} ;
struct nomi *rec[MAXRECORDS];

/*** procedura di scambio ***/
void scambia(struct nomi *Rec_i, struct nomi *Rec_j)
{
	struct nomi temp;
	strcpy(temp.cognome,Rec_i->cognome);
	temp.stip=Rec_i->stip;
	strcpy(Rec_i->cognome,Rec_j->cognome);
	Rec_i->stip=Rec_j->stip;
	strcpy(Rec_j->cognome,temp.cognome);
	Rec_j->stip=temp.stip;
}


int  main(void)
{
    int i, j, iNum;
    /** Leggi da input le stringhe fino a che nel cognome ci sia '.'
    o il massimo dei records **/
    for (iNum = 0; iNum < MAXRECORDS; iNum++){
        rec[iNum] = (struct nomi *) malloc(sizeof(struct nomi));
        if (rec[iNum] == NULL){
           printf("Errore allocazione memoria:[%ld]!!\n", errno);
           exit(1);
        }
        printf("\nInserisci il cognome (. per terminare): ");
        fgets(rec[iNum]->cognome, 30, );
        if (rec[iNum]->cognome[0]=='.')
           break;
        printf("Inserisci lo stipendio: ");
        scanf("%d",&rec[iNum]->stip);
        sum=sum+rec[iNum]->stip;
        c=getchar();
    }
    /** ordino per ordine di stipendio **/
    for (i = 0; i < iNum; i++)
        for (j=i+1; j<iNum; j++)
            if(rec[i]->stip > rec[j]->stip)
                            scambia(rec[i], rec[j]);
    /** Loop di stampa **/
    for (i = 0; i < iNum; i++)
        printf("Record[%d]: [%s][%d]\n",i,rec[i]->cognome,rec[i]->stip);
    /** Loop di free memoria **/
    for (i = 0; i < iNum; i++)
        free(rec[i]);
    /** stampo la media ***/
    if(iNum>0)
              printf("\n media = %f\n",(float)sum/(float)(iNum));
              
    return (1);
}
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi In sella alla Fiido Nomads Pro: e-bike con motor...
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto ASUS Zenbook 14 (UX3480AA): tanta autonomia con ...
MSI PRO MAX: QD-OLED ultrawide per lavorare, creare e giocare MSI PRO MAX: QD-OLED ultrawide per lavorare, cre...
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
Il radiotelescopio cinese FAST ha scoper...
Certificati TLS più brevi, Let's ...
Milano si candida a sede Onu per la gove...
Dopo Groq e Hugging Face, NVIDIA guarda ...
Thomas Zurbuchen entra in Blue Origin ne...
Qualcomm porta servizi e sicurezza nel g...
Microsoft porta l'inferenza IA sul propr...
Blue Origin aiuterà la NASA nella...
Scoperto pianeta 'ribelle': orbita al co...
smart #2 debutta a Parigi: batteria da 3...
Un certificato in scadenza può la...
BYD ATTO 8, ricarica FLASH dal 10 al 97%...
Ledger e il caso CryptoBilis: furti stim...
Una forza quantistica ha mosso un appara...
MSI Afterburner sblocca i controlli segr...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:29.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v