View Full Version : [C] Spiegazione pezzo codice
Mulder90
14-10-2009, 16:39
ciao ieri il professore di fondamenti di informatica ha scritto in fretta e furia questo pezzo di codice e io essendo un novizio non ho capito molto bene alcuni passaggi. :D :D
Qualcuno potrebbe spiegarmelo riga per riga?
float sum;
int count;
float*A;
int n;
n=...
A=(float*)malloc(n*sizeof(float));
for(count=0,sum=0;count<n-1;count++)
{
scanf("%f", &A[count]);
sum +=A[count];
}
sum +=A[count];
do
{
sum -=A[count];
scanf("%f", &A[count]);
sum +=A[count];
count =(count+1)%n;
}
while(sum!=10);
RaouL_BennetH
14-10-2009, 19:01
ciao ieri il professore di fondamenti di informatica ha scritto in fretta e furia questo pezzo di codice e io essendo un novizio non ho capito molto bene alcuni passaggi. :D :D
Qualcuno potrebbe spiegarmelo riga per riga?
float sum;
int count;
float*A;
int n;
n=...
A=(float*)malloc(n*sizeof(float));
for(count=0,sum=0;count<n-1;count++)
{
scanf("%f", &A[count]);
sum +=A[count];
}
sum +=A[count];
do
{
sum -=A[count];
scanf("%f", &A[count]);
sum +=A[count];
count =(count+1)%n;
}
while(sum!=10);
Ciao :)
Vabbè che qualche volta può capitare di distrarsi in aula ma.... tu davvero intendi che non comprendi il significato "riga per riga" ? :p
Come suggerimento, posso solo dirti che:
int count; /* dichiara una variabile di tipo intero (int) di nome 'count' */
/*stesso discorso per le altre di tipo float*/
float* A; /* la variabile 'A' è un puntatore al tipo float ; */
A=(float*)malloc(n*sizeof(float)); /* qui viene allocata dinamicamente
della memoria; cerca di arrivarci da solo a capire il perchè ;) */
Una cosa importante che però lascia perplesso anche me è proprio sulla malloc:
Io non sono un gran conoscitore del C, ma mi sembra di ricordare che lo standard
voglia che malloc restituisca un puntatore al tipo void. Nel tuo caso specifico invece no.
Questo non so se possa dipendere da fini didattici.
Il resto, sono semplici cicli e controlli di flusso del programma.
Mulder90
14-10-2009, 20:14
Ciao :)
Vabbè che qualche volta può capitare di distrarsi in aula ma.... tu davvero intendi che non comprendi il significato "riga per riga" ? :p
nono no è che non comprendo tutto il codice, anche perchè stavo seguendo...:p è solo che non capisco alcuni passaggi tipo:
sum -=A[count];
e
count =(count+1)%n;
Qui il contatore rinizia da 0?
Ho messo riga per riga così scrivevano una volta e non chiedevo più spiegazioni :D :D :D
Mulder90
14-10-2009, 20:34
ok risolto ho capito potete chiudere
grazie per i consigli
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.