Bonjour je suis entrain de faire un exercice mais j'ai un petit problème, je n'arrive pas à afficher mon tableau, pourtant j'ai déjà fait bien plus compliqué mais je ne trouve pas la solution pour continuer mon exercice.
#include <stdio.h>
#include <stdlib.h>
void affiche(int tableau[], int tailleTableau);
void maximumTableau(int tableau[], int tailleTableau, int valeurMax);
int main()
{
int tableau[4] = {8, 9, 11, 15};
int valeurMax;
maximumTableau(tableau, 4, valeurMax);
printf("Reinitialiser a partir : ");
scanf("%d", valeurMax);
affiche(tableau, 4);
return 0;
}
void maximumTableau(int tableau[], int tailleTableau, int valeurMax)
{
int i = 0;
for(i = 0 ; i < tailleTableau ; i++)
{
if(tableau[i] > valeurMax)
{
tableau[i] = 0;
}
else
{
}
}
void affiche(int tableau[], int tailleTableau)
{
int i;
for (i = 0 ; i < tailleTableau ; i++)
{
printf("%d\n", tableau[i]);
}
}
}
le message d'erreur est undefined reference to 'affiche'
Tu ne fais pas les choses dans le bon ordre, il me semble ... Pourquoi un else ici? Avec rien dedans en plus. Indentation? Plutôt jumelage des accolades.
Le Tout est souvent plus grand que la somme de ses parties.
Le compilateur ne signale-t-il pas qu'il y a une fonction imbriquée ? C'est une autre façon de découvrir le pot aux roses. Ou alors c'est juste un warning ? Conseil : faire afficher le maximum de warnings (je ne sais pas comment on fait avec un IDE si tu en utilises un, en ligne de commande j'utilise les options -Wall -Wextra -pedantic ).
Et aussi -std=c11 (ou autre) pour rester dans du C standard, et ne pas déborder sur les gnuseries (extensions du langage spécifiques au compilateur gcc). Les fonctions imbriquées en font partie, me semble-t-il.
Ce n'est pas le problème pour le débutant que ça ne soit pas standard. Le souci, c'est que si elles ont leur intérêt, les gnuseries en question ont aussi l'inconvénient de ne pas être évoquées dans les tutoriels (qui ont autre chose à s'occuper que de rentrer dans ces détails), donc de ne pas faire entrer en résonance le neurone qui se pose des questions poukoikiveutpas avec celui qui se souvient de ce qu'il a lu quelque part.
On ne soulignera jamais assez l'intérêt pédagogique d'y ajouter -Werror pour s'obliger à régler les problèmes soulevés, au lieu de faire semblant de ne pas les voir :-)
- Edité par michelbillaud 10 avril 2021 à 12:01:14
Ah oui, les fonction imbriquées sont peut-être indiquées par -std=c11 en effet (que j'utilise aussi − pas étonnant, c'est en venant sur le forum que j'ai appris l'intérêt de ces options). En tout cas ça m'est déjà arrivé de trouver une erreur d'accolades grâce à ce warning.
En fait pour avoir une conformance stricte à la norme ISO (que l'on précisera) l'option à utiliser est -pedantic. essayer de transformer un warning qui n'existe pas en erreur n'y changera rien … l'erreur n'existera pas non plus …
Avec de grandes options veinnent de grandes responsabilités …
Afficher un tableau
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Le Tout est souvent plus grand que la somme de ses parties.