Erreur dans mon code C

Résolu/Fermé
RYn_9741 Messages postés 10 Date d'inscription mercredi 26 janvier 2022 Statut Membre Dernière intervention 1 février 2022 - Modifié le 26 janv. 2022 à 15:58
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 26 janv. 2022 à 15:34
salut a tous je vous écrit car j'ai besoin d'aide , j'ai un code en C qui ne veut pas fonctionner , il y a une erreur mais je ne sais pas ou est cette erreur , voici mon code et au passage je code sur code blocks ,


#include <stdio.h>
int main()
{
int prod =0;
int k =1;
for(int i = 1 ; i <= 1 0; i++);
{
prod = prod*k ;
k++;
}
printf("La valeur de prod est %d",prod);
return 0;
}


je vous remercie d'avance
A voir également:

3 réponses

Zepines Messages postés 76 Date d'inscription mardi 14 mai 2019 Statut Membre Dernière intervention 26 janvier 2022 224
Modifié le 26 janv. 2022 à 13:09
Salut @RYn_9741,

Tu as des espace et des
;
en trop.

Voici ton code corrigé :
#include <stdio.h>
int main(){
    int prod=0;
    int k=1;
    for(int i=1; i<=10; i++) {
        prod=prod*k;
        k++;
    }
    printf("La valeur de prod est %d",prod);
    return 0;
}


1
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
26 janv. 2022 à 15:34
Bonjour,

Comme on ne sais pas ce que tu cherches à faire, on peut difficilement t'indiquer comment le faire!

Par exemple:
- si tu veux que
prod
soit la somme des 10 premiers entiers, il faut remplacer la ligne 6 par
prod += k;
, mais le nom
prod
serait très mal choisi.
- si tu veux que
prod
soit le produit des 10 premiers entiers, il faut conserver la ligne 6, mais ligne 3, il faut faire
int prod = 1;
car comme l'a écrit Zepines tu ne fait que multiplier des zéros, là aussi le nom
prod
devrait plutôt être
factorielle
.
1
RYn_9741 Messages postés 10 Date d'inscription mercredi 26 janvier 2022 Statut Membre Dernière intervention 1 février 2022
26 janv. 2022 à 13:19
ok je t'en remercie mais j'ai encore une question j'ai du mal a comprendre ce que le programme fait je sais qu'il fait une multiplication de deux variables mais a quoi ca sert toutes ces incrémentations (i++,k++).

ps : je débute la programmation
0
Zepines Messages postés 76 Date d'inscription mardi 14 mai 2019 Statut Membre Dernière intervention 26 janvier 2022 224
Modifié le 26 janv. 2022 à 13:35
De rien :)

Il fait des choses bizarres. À commencer par
prod=0
donc ça multiplie continuellement par 0...

L'incrémentation de
i
(
i++
) sert pour la boucle
for
. À chaque passage (tant que
i
est inférieur ou égal à
10
) +1 est ajouté à
i
. Une fois que
i
est supérieur à
10
la boucle s'arrête.
L'incrémentation de
k
est juste utilisée pour ce calcul bizarre.
2