Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Google ha appena rinnovato la sua celebre serie A con il Pixel 10a, lo smartphone della serie più conveniente se consideriamo il rapporto tra costo e prestazioni. Con il chip Tensor G4, un design raffinato soprattutto sul retro e l'integrazione profonda di Gemini, il colosso di Mountain View promette un'esperienza premium a un prezzo accessibile. E il retro non ha nessuno scalino
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026
Al MWC Qualcomm annuncia una coalizione industriale per lanciare il 6G entro il 2029 e introduce agenti IA per la gestione autonoma della RAN. Ericsson, presente sul palco, conferma la direzione: le reti del futuro saranno IA-native fin dalla progettazione
CHUWI CoreBook Air alla prova: design premium, buona autonomia e qualche compromesso
CHUWI CoreBook Air alla prova: design premium, buona autonomia e qualche compromesso
CHUWI CoreBook Air è un ultraleggero da 1 kg con Ryzen 5 6600H, display 14" 16:10 e 16 GB LPDDR5. Offre buona portabilità, autonomia discreta e costruzione in alluminio, ma storage PCIe 3.0 e RAM saldata limitano l'espandibilità. A 549 euro sfida brand più noti nella stessa fascia di mercato.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-06-2005, 18: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, 19: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, 19: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, 19: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, 19: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, 21: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, 22: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, 22: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, 23: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, 10: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, 10: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, 10: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, 10: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, 10: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, 10: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, 11: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, 11: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


Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026 6G, da rete che trasporta dati a rete intelligen...
CHUWI CoreBook Air alla prova: design premium, buona autonomia e qualche compromesso CHUWI CoreBook Air alla prova: design premium, b...
Roborock Saros 20: il robot preciso e molto sottile Roborock Saros 20: il robot preciso e molto sott...
ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm ASUS ROG Kithara: quando HIFIMAN incontra il gam...
Rocket Lab ha posticipato il lancio del ...
Dalla missione Artemis IV il razzo spazi...
Una delle sonde europee di ESA Proba-3 h...
Un modder fa girare Linux su PS5: GTA V ...
MacBook Neo: nessuna sorpresa nei primi ...
La serie POCO X8 Pro è pronta al ...
Smartphone: 2026 difficile per il mercat...
Star Wars: Knights of the Old Republic R...
Huang, NVIDIA: OpenClaw ha realizzato in...
Annunciano il recupero di 4,8 milioni di...
Oggi degli ottimi auricolari Sony con ca...
Muffa in casa? Questo deumidificatore da...
Sonos Era 100: il punto d'ingresso per u...
"Non stiamo sostituendo nessuno con...
Tutti i robot in offerta ora: prezzi bas...
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: 20:21.


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