J'utilise le logiciel CodeBlocks
Fermé
kekedu38
-
Modifié le 11 nov. 2019 à 12:10
[Dal] Messages postés 6057 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 17 mars 2023 - 14 nov. 2019 à 15:02
[Dal] Messages postés 6057 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 17 mars 2023 - 14 nov. 2019 à 15:02
A voir également:
- J'utilise le logiciel CodeBlocks
- Codeblocks avec compilateur - Télécharger - Langages
- Matthias utilise les réseaux sociaux. que doit-il faire dans chaque situation ? - Forum Cloud
- Logiciel aménagement intérieur gratuit - Guide
- Logiciel montage video gratuit - Guide
- Cliquez sur ce lien. en n'utilisant que le clavier, quel mot obtenez-vous ? ✓ - Forum souris / Touchpad
4 réponses
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
11 nov. 2019 à 12:09
11 nov. 2019 à 12:09
Bonjour
Je ne fais pas de c
Mais.. c'est normal que tu aies deux fois la même fonction ??
void fonction_premier
Le premier ne devrait pas être le main ?
Je ne fais pas de c
Mais.. c'est normal que tu aies deux fois la même fonction ??
void fonction_premier
Le premier ne devrait pas être le main ?
NHenry
Messages postés
15047
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 mars 2023
331
Modifié le 11 nov. 2019 à 18:25
Modifié le 11 nov. 2019 à 18:25
Après quelques secondes d'analyse :
for(i=premier-1;i=2;i++)
et dans la boucle i=i-1
déjà, le i=i-1 fait que tu retourne un cran en arrière, donc avec ton for tu fais du sur place .
Ensuite, i=2 sera vrai tant que i est un entier, peut-être voulais-tu écrire i==2 ?
Et si tu pars de "premier-1" pour redescendre, c'est pas i++ qu'il faut faire sur la ligne du for, mais i--
Tes tests sont aussi faux :
à quoi sert
premier%i==b; ?
Et si b==3, il se passe quoi ? Que devrait-il se passer ?
J'interviens principalement en VB6 et VB.NET, avec un peu de C#, mais la modération m'amène souvent sur d'autre langages.
En VB.NET pensez à activer "Option Explicit" et "Option Strict"
for(i=premier-1;i=2;i++)
et dans la boucle i=i-1
déjà, le i=i-1 fait que tu retourne un cran en arrière, donc avec ton for tu fais du sur place .
Ensuite, i=2 sera vrai tant que i est un entier, peut-être voulais-tu écrire i==2 ?
Et si tu pars de "premier-1" pour redescendre, c'est pas i++ qu'il faut faire sur la ligne du for, mais i--
Tes tests sont aussi faux :
à quoi sert
premier%i==b; ?
Et si b==3, il se passe quoi ? Que devrait-il se passer ?
J'interviens principalement en VB6 et VB.NET, avec un peu de C#, mais la modération m'amène souvent sur d'autre langages.
En VB.NET pensez à activer "Option Explicit" et "Option Strict"
[Dal]
Messages postés
6057
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
17 mars 2023
1 043
Modifié le 12 nov. 2019 à 09:41
Modifié le 12 nov. 2019 à 09:41
Bonjour kekedu38,
Un point important des remarques de NHenry est qu'en C l'opérateur de comparaison d'égalité est
Je ne comprends pas de quelle façon tu penses vérifier qu'un nombre est premier. Peut-être peux tu expliquer ta logique en français ?
Aussi, tu bases en partie l'exécution de ton code sur la façon dont la valeur de
NHenry te demande à quoi sert
Dal
Un point important des remarques de NHenry est qu'en C l'opérateur de comparaison d'égalité est
==alors que l'opérateur d'affectation est
=. Dans ton code, tu mélanges les deux à plusieurs reprises (dans la condition du
foret ailleurs) et forcément cela ne donne pas le résultat attendu.
Je ne comprends pas de quelle façon tu penses vérifier qu'un nombre est premier. Peut-être peux tu expliquer ta logique en français ?
Aussi, tu bases en partie l'exécution de ton code sur la façon dont la valeur de
bchange. Cependant, après que
bsoit initialisé à 0, aucune partie de ton code ne modifie la valeur de
b.
NHenry te demande à quoi sert
premier%i==b... j'ajouterai que cette ligne ne sert à rien, car elle effectue une comparaison d'égalité (le signe
==) du reste de la division entière de
premierpar
iqui est comparé à la valeur de
b. Comme le résultat de ce test n'est pas exploité, il est ignoré et la ligne ne fait rien en réalité. Le programme s'exécute comme si cette ligne n'existait pas.
Dal
cptIgloo
Messages postés
115
Date d'inscription
mardi 1 octobre 2019
Statut
Membre
Dernière intervention
26 octobre 2020
6
12 nov. 2019 à 10:04
12 nov. 2019 à 10:04
Ya pas un soucis avec ton while (a <= 1)?
tu veux pas plutot dire (a >= 1) ?
parce que je suppose que a, le nombre que tu saisis au clavier, est forcément supérieur à 1 sinon, c'est que c'est un nombre premier donc ya pas besoin du programme xD.
tu veux pas plutot dire (a >= 1) ?
parce que je suppose que a, le nombre que tu saisis au clavier, est forcément supérieur à 1 sinon, c'est que c'est un nombre premier donc ya pas besoin du programme xD.
[Dal]
Messages postés
6057
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
17 mars 2023
1 043
12 nov. 2019 à 10:30
12 nov. 2019 à 10:30
La condition du
Il lui est demandé "b. Écrire le programme principal qui saisit et contrôle un entier strictement supérieur à 1 (...)". La boucle
do/
whileme parait correcte.
Il lui est demandé "b. Écrire le programme principal qui saisit et contrôle un entier strictement supérieur à 1 (...)". La boucle
do/
whileredemande la saisie tant que l'entier saisi est inférieur ou égal à 1. Si la condition est fausse, cela signifie que l'entier saisi est strictement supérieur à 1, la boucle s'interrompt alors et le programme principal continue pour traiter la valeur saisie.
11 nov. 2019 à 12:40
12 nov. 2019 à 10:02
14 nov. 2019 à 15:02
Pourquoi dis tu cela ?