Prob tableaux

ben3020 Messages postés 4 Date d'inscription dimanche 9 novembre 2003 Statut Membre Dernière intervention 13 juillet 2005 - 13 juil. 2005 à 10:44
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 - 13 juil. 2005 à 18:55
Bonjour, je suis actuellement en train de faire un challenge et
j'aimerai savoir les erreurs de mon code ( je ne veux pas de reponses
juste des conseils :


var0 = 32


x = 1


y = 10000


var1 = var0 + y*log(x)





x = x + 2


y = y - 2


var2 = var1 + x*log(y)





x = x + 2


y = y - 2


var3 = var2 + y*log(x)

......


Ensuite faites l'addition de toutes les var de var1 à var5000 :


solution = var1 + var2 + var3 + var4 + [...] + var4999 + var5000

et voici mon code :



#include <stdio.h>

#include <math.h>

int main() {

double var[5002],somme;

var[0] = 32;

var[1]=32;

int i=0;

double x = 1;

double y = 10000;

for(i=1;i<=5000;i++) {


/*impaire*/ if (i%2) {


x = x + 2;


y = y - 2;


var[i+1]=var[i]+y*log(x);


printf("vari%d = %lf \n",i,var[i+1]);

} else {


x = x + 2;


y = y - 2;


var[i+1]=var[i]+x*log(y);


printf("varp%d = %lf \n",i,var[i+1]);

}}

for(i=1;i<=5000;i++) {

somme=somme+var[i];

printf("la somme est : %lf \n",somme);

}

printf("var5000= %lf \n",var[5000]);

return 0;

}

Merci de votre aide

3 réponses

BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
13 juil. 2005 à 10:59
hello!



Tout d'abord, tu déclares un tableau de 5002 doubles alors que tu n'en utilise que 5000. Pourquoi?
Ensuite,
dans ta deuxième boucle (qui en inutile: tu peux très bien incrémenter
la somme dans la première), tu utilise "somme" sans l'avoir
initialisée!!


Buno
----------------------------------------
L'urgent est fait, l'impossible est en train de se faire. Pour les miracles, prévoir un délai...
0
BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
13 juil. 2005 à 11:01
Sinon, avant ton "return 0", mets un "getchar();" si tu veux avoir le temps de voir tes résultats

Buno
----------------------------------------
L'urgent est fait, l'impossible est en train de se faire. Pour les miracles, prévoir un délai...
0
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
13 juil. 2005 à 18:55
tu ne te serais pas melange les crayons entre pair et impair ?
lorsque tu calcules var2, i=1, donc i impair, donc toi tu fais x.log(y) alors que c'est y.log(x)

Petites suggestions :
1)remplace : x x + 2;y y - 2;
par : x+=2;y+=2;
2)
factorise cette etape commume quelle que soit la partite de i

Pourquoi faire simple quand on peut faire compliqué ?
0