|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
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;
}
|
|
|
|
|
|
#2 |
|
Senior Member
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 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2005
Messaggi: 1653
|
Sicuro che qui:
Codice:
/** Struttura dei record **/
struct nomi{
char cognome[30];
int stip;
} ;
struct nomi *rec[MAXRECORDS];
Allora qui Codice:
rec[iNum] = (struct nomi *) malloc(sizeof(struct nomi));
__________________
gica78r@ncc-1701:~$ tar -c tar: Codardamente mi rifiuto di creare un archivio vuoto |
|
|
|
|
|
#4 |
|
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?
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Mar 2005
Messaggi: 1653
|
Quote:
Magari sbaglio...
__________________
gica78r@ncc-1701:~$ tar -c tar: Codardamente mi rifiuto di creare un archivio vuoto |
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Feb 2005
Messaggi: 162
|
sarebbe interessante un commento di cionci e ziosilvio,che mi sembrano due con le p...e
|
|
|
|
|
|
#7 | |
|
Senior Member
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:
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;
}
__________________
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 |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 16053
|
beh mi sembra molto semplice come programma, nulla da dire
ma che hanno frequenti? |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Mar 2005
Messaggi: 1653
|
Quote:
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]); 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 |
|
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Feb 2005
Messaggi: 162
|
ragazzi non volevo mica offendere qualcuno...ma se lo fatto senza volerlo scusatemi
|
|
|
|
|
|
#11 | |
|
Senior Member
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:
~§~ 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 |
|
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Feb 2005
Messaggi: 162
|
come mai che su v.c lo compila mentre su dev no?
|
|
|
|
|
|
#13 |
|
Member
Iscritto dal: Feb 2005
Messaggi: 162
|
e poi conio non fa parte della lib c++...
|
|
|
|
|
|
#14 | |
|
Senior Member
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:
~§~ 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 |
|
|
|
|
|
|
#15 | |
|
Senior Member
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:
~§~ 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 |
|
|
|
|
|
|
#16 |
|
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' |
|
|
|
|
|
#17 |
|
Senior Member
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);
}
__________________
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 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:21.



















