Error: called object is not a function or function pointet

Fermé
mmmtv Messages postés 1 Date d'inscription mardi 20 octobre 2015 Statut Membre Dernière intervention 20 octobre 2015 - 20 oct. 2015 à 05:48
[Dal] Messages postés 6200 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 7 janvier 2025 - 20 oct. 2015 à 14:33
Bonsoir,
J'ai reçu ce message d'erreur concernant la ligne 21 de mon code. Je suis débutante et je n'arrive pas à comprendre ce que ce message signifie.
Merci.

1#include <stdio.h>
2
3 main()
4{
5 float moyPond;
6 float intra;
7 float final;
8 float tps;
9 float globale;
10 float litterale;
11
12 printf ("\nEntrez la note d'intro et de final:\n");
13 scanf ("%f %f %f", &intra, &final);
14
15 moyPond = (intra * 0.25 + final * 0.35)/ 0.60;
16 printf("La moyenne pondérée est de %f", moyPond);
17
18 printf ("Entrez la note de TPS:\n");
19 scanf ("%f", &tps);
20
21 If ((moyPond<40) && (tps>50))
("%f", &tps)==50;

globale = 0.25 * intra + 0.35 * final + 0.40 * tps;

{
if ((globale>90) && (globale<100))
printf("L'etudiant/e a eu %f comme note globale et A+ comme note litterale.\n", &globale);
else if ((globale>85) && (globale<89))
printf("L'etudiant/e a eu %f comme note globale et A comme note litterale.\n", &globale);
else if ((globale>80) && (globale<84))
printf("L'etudiant/e a eu %f comme note globale et A- comme note litterale.\n", &globale);
else if ((globale>77) && (globale<79))
printf("L'etudiant/e a eu %f comme note globale et B+ comme note litterale.\n", &globale);
else if ((globale>73) && (globale<76))
printf ("L'etudiant/e a eu %f comme note globale et B comme note litterale.\n", &globale);
else if ((globale>70) && (globale<72))
printf("L'etudiant/e a eu %f comme note globale et B- comme note litterale.\n", &globale);
else if ((globale>65) && (globale<69))
printf ("L'etudiant/e a eu %f comme note globale et C+ comme note litterale.\n", &globale);
else if ((globale>60) && (globale<64))
printf ("L'etudiant/e a eu %f comme note globale et C comme note litterale.\n", &globale);
else if ((globale>57) && (globale<59))
printf ("L'etudiant/e a eu %f comme note globale et C- comme note litterale.\n", &globale);
else if ((globale>54) && (globale<56))
printf ("L'etudiant/e a eu %f comme note globale et D+ comme note litterale.\n", &globale);
else if ((globale>50) && (globale<53))
printf ("L'etudiant/e a eu %f comme note globale et D comme note litterale.\n", &globale);
else if ((globale>35) && (globale<49))
printf ("L'etudiant/e a eu %f comme note globale et D- comme note litterale.\n", &globale);
else if ((globale>0) && (globale<34))
printf ("L'etudiant/e a eu %f comme note globale et E comme note litterale.\n", &globale);
}

}
A voir également:

1 réponse

[Dal] Messages postés 6200 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 7 janvier 2025 1 097
Modifié par [Dal] le 20/10/2015 à 14:47
Salut mmmtv,

Pas mal d'erreurs...

En ligne 21, tu mets une majuscule à "if", qui cause une erreur, quant à la suite du if, cela ne respecte pas la syntaxe de :

if (condition) {
   /* bloc à exécuter */
}

et ce qui suit
("%f", &tps)==50
est assez peu compréhensible, et résulte en une expression évaluée par C qui ne sert à rien dans le meilleur des cas. Que veux-tu faire exactement ?

ton prototype de main devrait être
int main(void)
et ton code se terminer par
return 0
sauf si tu programmes pour de l'embarqué.

Pourquoi ne pas utiliser le type double pour tes nombres ?

La variable
litterale
n'est ps utilisée.

En ligne 13, tes spécificateurs de conversion sont au nombre de trois, alors que tu n'as que deux arguments.

Dans tes printf, tu cherches à afficher la valeur du nombre et non pas son pointeur. Donc, l'argument devrait être
globale
au lieu de
&globale
.

Je n'ai pas regardé le reste du code et sa pertinence.

Note que ces différentes erreurs et leur localisation te sont données par un compilateur tel que gcc lorsque tu compiles avec les warnings (option -Wall avec gcc).

Dal
0