Programme C - Page 2

Résolu
Précédent
  • 1
  • 2
  1. Romiinet Messages postés 596 Date d'inscription   Statut Membre Dernière intervention   107
     
    je n'est pas lu toute les raiponces, je ne sait pas si on te la déja dit mais tes 6 1er ligne se résume a sa :
    int a,b,c;
    a = b = c = 1;

    ou :

    int a=1,b=1,c=1;

    la boucle while est plus simple a utiliser si tu a du mal avec le for.

    les GOTO oublie c'est très mauvais.
    0
  2. kirua-93 Messages postés 652 Statut Membre 72
     
    Hum je crois que j'ai compris l'idée je crée un tableau avec dedans la fonction triangulaire et dans la fonction nombre j'appel la fonction triangulaire pour quel "supprime" les nombres égaux.
    0
  3. kirua-93 Messages postés 652 Statut Membre 72
     
    Merci Romiinet mais je ne connais pas la boucle while ^^
    0
  4. Romiinet Messages postés 596 Date d'inscription   Statut Membre Dernière intervention   107
     
    un while c'est comme un if qui se répète temps que la condition est vrai.

    exemple :

    i=0;
    while(i<10){
    ...
    ...
    ...

    i++;

    }

    voila ;)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kirua-93 Messages postés 652 Statut Membre 72
     
    ah oki merci du petit cour
    0
  7. kirua-93 Messages postés 652 Statut Membre 72
     
    Je pense avoir trouver l'idée pour faire tournée ma fonction
    #include<stdio.h>
    #include<stdlib.h>
    main(){
    int a;
    int b;
    int c;
    a = 1;
    b = 1;
    c = 0;
    encore:
    retour:
    a=a+1;
    b=a+b;
    c++;
    if(c==b), goto retour; // c et le compteur et recois 1 a chaque tour et b contient les nbr triangulaire si c=b alors il retour et rajoute 1 a c et passe au second nbr triangulaire.
    printf("%d ",c); // affiche c ci c n'est pas egale a b.
    if(b<100) goto encore; //recommence la fonction tant que b et inférieure a 100
    }

    j'utilise une fonction if pour dire de faire apparaitre c sauf quand c=b la il nafiche rien et continue son bout de route.
    Mais je narive pas a faire tourner la fonction je ne ces pas pourquoi
    0
    1. loupius Messages postés 789 Statut Membre 148
       
      if(c==b), goto retour;
      C'est quoi la virgule ?
      Enlève-là, compile, lance le programme et tu auras le résultat suivant:
      1 2 3 4 5 6 7 8 9 10 11 12 13
      C'est bien ce que tu voulais ? Si ce n'est pas le cas, c'est que ton programme n'est pas correct.
      Bonne continuation.
      0
  8. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
     
    lorsque tu écris un programme, il faut prendre l'habitude de prendre une feuille de papier, un crayon et une gomme. Tu essayes d' "exécuter" toi-même ton programme en le faisant, ligne par ligne. Note bien ce qui se passe au niveau des variables. Il faut aussi écrire qqpart ce qui va s'afficher à l'écran. Après 2 ou 3 tours (ou plus), tu verras que ton programme ne fait pas ce que tu veux.
    0
  9. kirua-93 Messages postés 652 Statut Membre 72
     
    oki merci du conseil
    0
    1. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
       
      ici dans ce que le code que tu as donné : qu'est ce que ça te donne ?
      0
  10. kirua-93 Messages postés 652 Statut Membre 72
     
    Sa me donne une erreure pour goto.
    En faite j'ai compris comment faire mon programme ces juste que je ne connais pas les bon "mot" pour le faire marcher
    grossièrement l'idée que j'ai actuellement ces de calculé le 1er triangulaire puis de le comparer a mon compteur si ces nes pas les meme je rajoute 1 au compteur et je recommence si c les meme je naffiche rien et je passe au second nombre triangulaire.
    Ces juste que je ne ce pas utiliser les fonctions de boucle comme for while et if
    0
    1. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
       
      alors il faut apprendre ;) ce n'est pas très compliqué :

      la structure de décision :

      if (condition) {
        //ligne(s) de code à exécuter si condition est vraie
      }
      //à partir d'ici peu importe condition ce sera exécuté
      


      On peut faire aussi :
      if (condition) {
        //ligne(s) de code à exécuter si condition est vraie
      }
      else {
        //lignes de code à exécuter si condition est fausse
      }
      //à partir d'ici peu importe condition ce sera exécuté
       


      Mais il me semble que tu avais déjà compris ça.


      Ensuite les boucles (aussi appelées structures d'itération):
      while (condition) {
        //ligne(s) de code qui s'exécuteront tant que la condition est vraie
      }


      Ex :
      //Dans ce programme rien ne s'affiche.
      int a=5;
      while (a < 3) {
        printf("Salut \n");
        a = a+1;
      }
      
      
      //Dans ce programme "Salut" d'affiche 3 fois.
      int a=5;
      while (a < 8) {
        printf("Salut \n");
        a = a+1;
      }
      
      0
      1. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663 > Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention  
         
        note : il y a deux autres façon de faire une boucle : avec do{...}while() et for(;;){...}, mais en fait tu peux absolument tout faire avec while(){...} uniquement, les autres sont juste des raccourcis ou des petites variantes en quelque sortes.
        0
  11. kirua-93 Messages postés 652 Statut Membre 72
     
    Oki je croi que j'ai compris pour while je vais essayer avec sa merci
    0
    1. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
       
      n'hésite pas à faire des essais, mais comme je t'ai dis avant : essaye de voir ce que ça va donner, à l'avance, avec un bout de paier et un crayon, et ensuite teste-le pour voir si tu avais raison.

      Si tu ne comprends pas pourquoi tu obtiens qqchose alors que tu pensais obtenir autre chose, fias-nous part de ta question ici, mais en précisant ce que tu pensais obtenir et ce que tu obtiens en fait.
      0
  12. kirua-93 Messages postés 652 Statut Membre 72
     
    Heu comment on fait pour que quand la fonction arrive a la fin elle retourne au debut ? (sans utiliser goto)
    0
    1. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
       
      je ne comprends pas ta phrase. Pourrais-tu préciser ou mettre de la ponctuation et des connecteurs ?
      0
  13. kirua-93 Messages postés 652 Statut Membre 72
     
    #include<stdio.h>
    #include<stdlib.h>
    main(){
    int a;
    int b;
    int c;
    a = 1;
    b = 1;
    c = 0;

    Depart

    a=a+1;
    b=a+b;
    while(c=b){
    c++;
    }
    printf("%d ",c);

    Arriver
    }

    Je souhaite quel parte de depart et aille a arriver autant de fois que je le veux.
    Merci

    0
    1. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
       
      regarde l'exemple de boucle while() que je t'ai donné plus haut. Essaye de raisonner et de créer une boucle qui affiche autant de fois "Salut" que tu le souhaites (disons : 10 par exemple).

      Ensuite, on mélangera ça avec ton programme :)
      0
  14. kirua-93 Messages postés 652 Statut Membre 72
     
    int a=5;
    while (a < 15) {
    printf("Salut \n");
    a = a+1;
    }

    Comme sa ?
    0
    1. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
       
      voilà (Attention : pas de majuscule à int ... essaye ton code sur ton compilateur dans un programme test! ).

      On peut faire plus simple : int a = 0; while(a<10) { ... }


      donc voilà, il suffit de rajouter une variable comme ça et une boucle while . Pas "a" car tu utilises déjà ce nom de variable, mais peu importe ;).

      PS : a = a+1; s'écrit a++; habituellement
      0
  15. kirua-93 Messages postés 652 Statut Membre 72
     
    A oui je voix sa crée une boucle obligant le programme a recommencer
    oki merci v test sa se soir je posterais surement demain
    merci encore pour ton aide
    0
  16. kirua-93 Messages postés 652 Statut Membre 72
     
    Merci j'ai trouver
    0
Précédent
  • 1
  • 2