edit: bon voilà, résolu par kineox sur IRC, merci.
- ma fonction est fausse, voilà la bonne:
[code]void maximumTableau(long tableau[], long tailleTableau, long valeurMax)
{
long i=0;
for (i=0; i < tailleTableau; i++)
{
if (tableau[i] > valeurMax)
{
tableau[i] = 0;
}
}
}[/code]
2)j’avais oublié le “&” au scanf, forcément ça plante.
Je me suis mis au C via les tuto/exos du site du zer0 (c’est gratos et je trouve ça bien expliqué).
J’en suis arrivé aux tableaux. Un des exos me pose problème. (j’ai limite honte, car ça va surement être une broutille pour vous les pros B))
"Exercice 4 : créer une fonction maximumTableau qui aura pour rôle de remettre à 0 toutes les cases du tableau ayant une valeur supérieure à un maximum. Cette fonction prendra en paramètre le tableau ainsi que le nombre maximum autorisé (valeurMax). Toutes les cases qui contiennent un nombre supérieur à valeurMax doivent être mises à 0.
Prototype : void maximumTableau(long tableau[], long tailleTableau, long valeurMax);
"
Je fais mon truc (ou j’essais)
Donc j’ai ça dans le main.c :
[code]{blablabla
printf("\nvaleur maximum du tableau?");
scanf("%ld", max); //on récupère la valeur maximale qu’on veut
maximumTableau(tableau, 4, max); // on envoi ça dans la fonction qui va bien
affiche(tableau, 4); //et on affiche le résultat
return 0;
}[/code]
voilà la fonction “maximumTableau” en question :
[code]void maximumTableau(long tableau[], long tailleTableau, long valeurMax)
{
long i=0;
for (i=0; tableau[i]>valeurMax; i++)
{
tableau[i]=0;
}
}[/code]
Je suis pas sur du tout de la fonction (pour ne pas dire que je suis persuadé qu’il est faux).
Toujours est-il que quand je lance ça, une fois que j’ai rentré ma valeur max, la console plante (“console.exe a rencontré un problème et doit fermer. blabla” > je suis sous xp). Donc je vérifie d’où ça peut venir (je suspecte surtout ma fonction maximumTableau) et chose étrange, même en supprimant les lignes “maximumTableau(tableau, 4, max);” et “affiche(tableau, 4);” , ça plante encore O_o (aussi bien sous code::blocks que visual studio 2005)
Quelqu’un aurait une idée d’où ça pourrait venir B) ?