Aide pour débutant en C

Fermé
naohag Messages postés 4 Date d'inscription jeudi 24 novembre 2016 Statut Membre Dernière intervention 27 novembre 2016 - 24 nov. 2016 à 11:45
naohag Messages postés 4 Date d'inscription jeudi 24 novembre 2016 Statut Membre Dernière intervention 27 novembre 2016 - 27 nov. 2016 à 13:07
Bonjour, depuis plusieurs jours je cherche à comprendre comment faire en sorte de crée un programme qui compte combien de nombres de Fibonacci jai, entre deux nombre que je donne en entrée de jeux.

1 réponse

lmc-3 Messages postés 597 Date d'inscription samedi 13 juin 2015 Statut Membre Dernière intervention 30 septembre 2024 68
24 nov. 2016 à 12:49
Après avoir regardé sur internet de quoi il s'agissait traduire en C l'Algorithme récursif naïf serait l'approche la plus facile en vu de la complexité que les autres algorithmes et expressions à l'écriture du codage (surtout pour un débutant) pourraient soumettre.

De la part d'un deuxième débutant en C utiliser abusivement les conditions if/else et do/while seraient certes longs à taper mais rendrait l'allure général du programme plus lisible et moins agressif.
Ne surtout pas rester dans la fonction main et diviser le programme sur d'autres pages pour alléger la chose.

Si vous êtes à l'aise avec les pointeurs ça pourrait alléger la longueur, mais au risque de se perdre dans la construction générale.

Quoi qu'il en soit, ce projet va vous demander beaucoup de réflexion sur papier


Malgré la maigreur des conseils j'espère avoir ouvert une voie, bonne chance pour la suite.
0
naohag Messages postés 4 Date d'inscription jeudi 24 novembre 2016 Statut Membre Dernière intervention 27 novembre 2016
Modifié par naohag le 24/11/2016 à 13:51
Merci de votre aide, simple question esque je peux construire un tableau a base de if/else?
L'exercise en lui meme me demande de recree ce tableau

Please enter 2 positive numbers (1-99999):1234
5678
1234 1235 1236 1237 1238 1239 1240 1241 1242
5678 3 3 3 3 3 3 3 3 3
5679 3 3 3 3 3 3 3 3 3
5680 3 3 3 3 3 3 3 3 3
5681 3 3 3 3 3 3 3 3 3
5682 3 3 3 3 3 3 3 3 3
5683 3 3 3 3 3 3 3 3 3
5684 3 3 3 3 3 3 3 3 3
5685 3 3 3 3 3 3 3 3 3
5686 3 3 3 3 3 3 3 3 3
5687 3 3 3 3 3 3 3 3 3
Enter your choice:

j'ai penser a commencer comme un tableau pour les tables de multiplications
for(i=num1; i<=num1+8 ;i++){
for(j=num2 ;j<=num2 +9 ;j++)
printf (%5d/t, _________); <--- ici je bloque
}

j'ai trouver un code pour trouver toutle nombres de fibanacci entre num1 et num2 mais je ne sais pas comment avance d'ici.

Merci beeaucoup de votre aide
0
lmc-3 Messages postés 597 Date d'inscription samedi 13 juin 2015 Statut Membre Dernière intervention 30 septembre 2024 68
Modifié par lmc-3 le 24/11/2016 à 14:02
Pouvez vous faire un copié collé de l'ensemble du code déjà tapé avec l'affichage couleur?
Pour se faire il suffit de mettre la partie collée en gras puis à coté des boutons B, I, S cliquer sur la petite flèche puis sur "c"
( < c o d e c > [...] < / c o d e > )
Que je regarde ça
0
naohag Messages postés 4 Date d'inscription jeudi 24 novembre 2016 Statut Membre Dernière intervention 27 novembre 2016 > lmc-3 Messages postés 597 Date d'inscription samedi 13 juin 2015 Statut Membre Dernière intervention 30 septembre 2024
24 nov. 2016 à 14:07
Please enter 2 positive numbers (1-99999):1234
5678
         1234    1235    1236    1237    1238    1239    1240    1241    1242
 5678       3       3       3       3       3       3       3       3       3
 5679       3       3       3       3       3       3       3       3       3
 5680       3       3       3       3       3       3       3       3       3
 5681       3       3       3       3       3       3       3       3       3
 5682       3       3       3       3       3       3       3       3       3
 5683       3       3       3       3       3       3       3       3       3
 5684       3       3       3       3       3       3       3       3       3
 5685       3       3       3       3       3       3       3       3       3
 5686       3       3       3       3       3       3       3       3       3
 5687       3       3       3       3       3       3       3       3       3
Enter your choice:</gras>


<gras>
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

void main()
{
	int num3, num4, flag3=1,i=1,j=1;
	while (flag3) {
		flag3 = 0;
		printf("Please enter 2 positive numbers (1-99999)");
		scanf("%d %d", &num3, &num4);
		if (num3 > 99999 || num3 < 1 || num4>9999 || num4 < 1)
		{
			printf("wrong input, try again.\n");
			flag3 = 1;
		}

	}
	for (i = num3; i <= num3 + 8; i++) {
		for (j = num4; j <= num4 + 9; j++)
			printf("%5d\t", );


	}

	
}
0
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
Modifié par [Dal] le 24/11/2016 à 14:40
il faudrait que tu fasses ta fonction qui calcule la suite de Fibonacci et qui retourne le nombre de nombres de Fibonacci entre les deux entiers, pour afficher la valeur dans ton tableau.

si tu sais calculer la suite, il n'y a pas vraiment de difficulté, car il suffit de contrôler si le nombre en cours est bien compris dans l'intervalle, pour incrémenter le compteur, et sortir de la fonction quand le nombre en cours dépasse la borne supérieure en retournant la valeur du compteur.

si tu es limité à 1-99999, tu peux sans doutes utiliser des
int
pour stocker tes valeurs, mais, théoriquement, tu devrais vérifier que tu ne dépasses pas la capacité maximale supérieure d'un
int
, car le standard du C définit qu'il peut être au minimum de 32767 (en théorie, par exemple sur mon implémentation de gcc sur Linux Debian i386,
INT_MAX
vaut dans mon cas : 2147483647).

tu dois alors vérifier, avant d'effectuer un calcul, que tu ne vas pas dépasser.

http://www.cplusplus.com/reference/climits/

sinon, la suite augmentant assez rapidement, avec du C standard, tu peux utiliser
unsigned long long int
, qui a des limites bien supérieures (selon le C99, la limite minimale est 18446744073709551615 selon ce standard).


Dal
0
lmc-3 Messages postés 597 Date d'inscription samedi 13 juin 2015 Statut Membre Dernière intervention 30 septembre 2024 68 > naohag Messages postés 4 Date d'inscription jeudi 24 novembre 2016 Statut Membre Dernière intervention 27 novembre 2016
24 nov. 2016 à 14:37
Je vous laisse entre vous, ce n'est plus d'un niveau de mon ressors.

Au plaisir d'avoir aidé,
bonne fin de journée
0