Erreur de compilation , explication de source
sylvie
-
MissZaza Messages postés 149 Statut Membre -
MissZaza Messages postés 149 Statut Membre -
Bonsoir , voici le code d'un programme :
alors j'ai 2 questions :
1. pour ce code ne compile pas , je l'ai recopié dans un livre ( j'utilise linux et gcc )
2. quelqu'un peut il m'expliquer comment la fonction puiss met base à la puissance n car je ne comprends vraiment pas le 2eme bloque , je vous remercie .
#include <stdio.h>
int puiss(int m, int n);
int main(void)
{
int i;
for( i = 0; i < 10; i++)
printf("%d %d %d\n", i, puiss(2,i), puiss(-3,1));
return 0;
}
{
int i, p;
p = 1;
for(i = 1; i <= n; ++i)
p = p*base;
return p;
}
alors j'ai 2 questions :
1. pour ce code ne compile pas , je l'ai recopié dans un livre ( j'utilise linux et gcc )
2. quelqu'un peut il m'expliquer comment la fonction puiss met base à la puissance n car je ne comprends vraiment pas le 2eme bloque , je vous remercie .
A voir également:
- Erreur de compilation , explication de source
- Erreur de lecture reconnecté en 3s - Forum TV & Vidéo
- Paris multiple 2/6 explication ✓ - Forum Loisirs / Divertissements
- Chambre 1408 explication fin - Forum Cinéma / Télé
- Consultez le code source de cette page pix - Forum Réseaux sociaux
- Tableau excel paris sportif multiple - Forum Excel
8 réponses
Tu as du faire un mauvais copier/coller car tu a oublié de remettre la fonction lorsque tu la definie. ensuite tu passes 2 paramètres à puiss donc utilises les tous les 2. En fonction de tes arguments je suppose que tu veux faire m puissance n. Donc:
#include <stdio.h>
int puiss(int m, int n);
int main(void) {
int i;
for( i = 0; i < 10; i++)
printf("%d %d %d\n", i, puiss(2,i), puiss(-3,1));
return 0;
}
int puiss(int m, int n) {
int i, p;
p = 1;
for(i = 1; i <= n; ++i)
p *= m;
return p;
}
Stef
#include <stdio.h>
int puiss(int m, int n);
int main(void) {
int i;
for( i = 0; i < 10; i++)
printf("%d %d %d\n", i, puiss(2,i), puiss(-3,1));
return 0;
}
int puiss(int m, int n) {
int i, p;
p = 1;
for(i = 1; i <= n; ++i)
p *= m;
return p;
}
Stef
ce que je cherche à savoir surtout c'est de comprendre çà :
int i, p;
p = 1;
for(i = 1; i <= n; ++i)
p = p*base;
return p;
je vois vraiment pas ici comment le nombre "base" est élevé à la puissance n , je ne comprends RIEN à cette partie du code ....
int i, p;
p = 1;
for(i = 1; i <= n; ++i)
p = p*base;
return p;
je vois vraiment pas ici comment le nombre "base" est élevé à la puissance n , je ne comprends RIEN à cette partie du code ....
en mathématique
2 puissance 3 = 2*2*2
donc tu fais une boucle for de 1 à la valeur de la puissance (ici 3)
dans cette boucle, le seul moyen de pouvoir faire 2*2*2 c'est de mémoriser les multiplications déjà faites donc tu initialises p à 1, puis p mémoriseras les valeurs des multplications de ta boucle for. Ici, pour 2 puiss 3
quand i=1
p = 2*1 = 2
puis i=2
p = 2*2 (valeur de p mémorisée quand n=1) = 4
puis n=3
p = 2 * 4
Stef
2 puissance 3 = 2*2*2
donc tu fais une boucle for de 1 à la valeur de la puissance (ici 3)
dans cette boucle, le seul moyen de pouvoir faire 2*2*2 c'est de mémoriser les multiplications déjà faites donc tu initialises p à 1, puis p mémoriseras les valeurs des multplications de ta boucle for. Ici, pour 2 puiss 3
quand i=1
p = 2*1 = 2
puis i=2
p = 2*2 (valeur de p mémorisée quand n=1) = 4
puis n=3
p = 2 * 4
Stef
c'est vraiment super compliqué , je comprends pas grand chose , moi je lis çà comme çà :
int i, p;
p = 1;
for(i = 1; i <= n; ++i)
p = p*base;
return p;
on déclare 2 entier i et p , et on dit que p vaut 1 , mais on ne sait ni ce que p ni ce que i représentent . le n dans la boucle on sait meme pas d'où il sort , bref on ne sait pas du tout ce que représentent les lettres , ni base , bref que dalle , moi je suis perdue , je sais pas comment tu as fait pour traduire en français ce code en C....
int i, p;
p = 1;
for(i = 1; i <= n; ++i)
p = p*base;
return p;
on déclare 2 entier i et p , et on dit que p vaut 1 , mais on ne sait ni ce que p ni ce que i représentent . le n dans la boucle on sait meme pas d'où il sort , bref on ne sait pas du tout ce que représentent les lettres , ni base , bref que dalle , moi je suis perdue , je sais pas comment tu as fait pour traduire en français ce code en C....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
il ne faut pas te baser sur le code que tu as mis dans ton premier post. Utilises celui que je t'ai mis et ca devrait être plus clair.
En effet, dans ce que tu as posté tu as oublié l'entête de la fonction. En fait tu doit avoir quelque chose comme ça:
int puiss(int m, int n) {
int i, p;
p = 1;
for(i = 1; i <= n; ++i)
p = p*m;
return p;
}
ici tu vois à quoi sert m et n car tu dois vouloir faire m puiss n
Stef
En effet, dans ce que tu as posté tu as oublié l'entête de la fonction. En fait tu doit avoir quelque chose comme ça:
int puiss(int m, int n) {
int i, p;
p = 1;
for(i = 1; i <= n; ++i)
p = p*m;
return p;
}
ici tu vois à quoi sert m et n car tu dois vouloir faire m puiss n
Stef
le code que je t'ai montré au début c'est exactement recopié mot pour mot celui qui se trouve dans le livre le langage C norme ANSI de k&r , et il ne compile pas , j'ai rien oublié , ce n'est pas normal....