Premiers pas en C

exta -  
juliencolin54 Messages postés 238 Statut Membre -
Bonjour,

Je dois Écrire une fonction qui affiche l'alphabet en minuscule sur une seule ligne, dans
l'ordre croissant, à partir de la lettre 'a' et je bloque completement dessus j ai teste ca :

#include <stdio.h>

int main ()
{
int nft_puchar(char c, char a)
{

for (c='a'; c<='z';c++)
{
ft_putchar(c);
c=c+1;
}
}
}

pour moi c est correct et je ne vois pas ce qui cloche, si quelqu un peut m eclairer svp ca devient urgent, merci d avance !

7 réponses

Résumé de la discussion

L'objectif du fil est d'écrire une fonction C affichant l'alphabet en minuscules sur une seule ligne, dans l'ordre croissant à partir de 'a', avec des détails sur les boucles et l'affichage.
Plusieurs réponses évoquent les valeurs ASCII et l'utilisation de printf avec %c, notamment en proposant une boucle allant de 97 à 122 et imprimant chaque caractère sans espaces.
Des échanges soulignent aussi des erreurs fréquentes comme l'incrémentation double dans la boucle ou le choix entre putchar et printf, et proposent des corrections adaptées au style et au contexte du programme.
En complément, la discussion évoque parfois des variantes d'affichage inversé ou d'autres exercices, mais aucun message n'est considéré comme une conclusion définitive sur l'état du fil.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. Thorak83 Messages postés 1140 Statut Membre 156
     
    Bonjour,

    #include <stdio.h>

    int main()
    {
    char i;
    for(i=97;i<123;i++)
    printf("%c",i);

    return 0;
    }

    Cordialement
    0
  2. exta
     
    Merci pour ta reponse, j aurais qq questions svp, deja pourquoi i de 97 a 123 et non de 0 a 25?, ensuite que signifie ""%c" ? et pourquoi ne met on pas des ouvetures et fermetures a la boucle ?

    Merci.
    0
    1. Thorak83 Messages postés 1140 Statut Membre 156
       
      97 est le code ASCII de la lettre a et 122 celui du z (http://www.table-ascii.com/

      ensuite le %c permet de formater la variable i en caractère (http://www.cplusplus.com/reference/cstdio/printf/

      pas besoin de mettre des {] a la boucle for car il n'y a qu'une seule ligne dedans, mais tu peux en mettre, pas de problèmes

      for(i=97;i<123;i++)
      {
      printf("%c",i);
      }
      0
    2. exta
       
      Merci beaucoup pour ton aide c est vraiment plus claire ;tn ! Une derniere chose j avais oublie mais je dois utilise while pour boucler mais si je change for par while ca ne marche plus comment ca se fait ?
      0
    3. Thorak83 Messages postés 1140 Statut Membre 156
       
      voici en version WHILE

      #include <stdio.h>

      int main()
      {
      char i;
      i=97;
      while (i<123)
      {
      printf("%c",i);
      i++;
      }
      return 0;
      }
      0
  3. Utilisateur anonyme
     
    Bonjour

    Petite remarque : il est tout à fait autorisé - et beaucoup plus explicite - d'utiliser 'a' et 'z' à la place de 97 et 123, comme tu le faisais dans ta version initiale.
    0
    1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
       
      oui, et
      int main(void)
      devrait être le prototype.

      Dal
      0
    2. exta
       
      merci pour vos reponses ! :)
      0
  4. exta
     
    Merci encore pour ton aide !
    Donc apres si je dois changer l ordre alphabetique, donc commencer par z, je mettrais i=123 et while i<97 ? ou il y a t il une commamde pour inverser ?

    Et de meme pour tous les chiffres comment faire, dois je mettre un n pour vu que tous les chiffres sont infini ?

    Et une ptite chose qui n a rien a voir, sous emacs je suis cense faire 4 tabulations mais rien ne se passe c est nor;al <
    0
    1. exta
       
      desole pour les erreurs de frappe je suis sur un qwerty il faut s y faire...
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. exta
     
    Pour l alphabet inverser c est bon par contre pour afficher tous les chiffres j ai un peu plus de mal, j ai essaye int i=0 et int n(pour infini)=i++ mais apparememt ca n est pas ca, et je vois ;al commemt verifier par le suite, on va avoir tous les nombres jusqu a linfini....?
    0
    1. exta
       
      Aussi un autre exo sur lequel je bloque... on doit afficher toutes les compo differentes de 3 chiffres en ordre croissant, j ai fais ca mais ne connait pas ce au il faut mettre pour :croissant", "chiffre1,2.." :


      #include <stdio.h>

      int main (void)
      {
      int i;
      i=0;
      while (i<=988)
      {
      i++;
      if (i=croissant && chiffre1<chiffre2 && chiffre2<chiffre3)
      {
      printf("%c",i);
      }
      }
      }
      0
    2. Thorak83 Messages postés 1140 Statut Membre 156
       
      tu dois afficher tous les chiffres de 0 à l'infini ? C quoi exactement l'exo.
      0
    3. Thorak83 Messages postés 1140 Statut Membre 156
       
      pour le 2ème exo je verrais comme ca rapidement, 3 boucles imbriquées faisant varier le dernier chiffre, puis l'avant dernier, puis le premier.
      Est-ce que 001 - 002 - 003 sont acceptés ou faut t"il vraiment des valeurs numériques 1 - 2 - 3 ....

      faut'il utiliser des while ou les for sont acceptés
      0
  7. exta
     
    Je me suis trompe c est des chiffres donc ca va de 0 a 9... fatigue quand tu nous tiens xD.

    Pour les compo differente j ai fais comme ca :

    #include <stdio.h>

    int main (void)
    {
    int a, b, c;
    while (a<=7)
    {
    b=a+1;
    while (b<=8)
    {
    c=b+1;
    while (c<=9)
    {
    printf ("%d%d%d\n", a, b, c);
    c++;
    }
    b++;
    }
    a++;
    }
    }

    ca vous parait bon ?

    Pour le %d%d%d%d\n on m a aider et je n ai rien compris... a quoi cela correspond t il ?

    Ensuite on doit faire une combi de 2 nombres entre 0 et 99 dqns l ordre croissant j ai repris donc le meme qu au dessus en supprimant le c ? Je garde juste a et b (a<=8) et (b<=9).

    Apres je dois afficher un nombre passe en parametre, La fonction devra
    être capable d'a"cher la totalité des valeurs possibles dans une variable de type
    int. J essaie de le faire et je posterais ici si je rencontre un soucis.
    Merci.
    0
    1. exta
       
      bon je seche un peu j ai essaye comme ca ;

      #include <stdio.h>

      int main (int 42);
      {
      int nb;
      'nb'=42;
      printf ("%c", nb);
      }

      vu que l on doit juste afficher on n a pas besoin de faire de boucle normalement ?
      0
    2. Thorak83 Messages postés 1140 Statut Membre 156
       
      les 3 boucles imbriquées: OK. mais pourquoi la 1ère boucle ne pas que jusqu'à 7 (a<=7) et pourquoi la 2ème ne vas que jusqu'à 8 ?

      le printf est un print format c a dire que l'on format ce que l'on va afficher. le premier argument est le format, les autres les variables
      https://fr.wikipedia.org/wiki/Printf
      "%d%d%d\n" : %d veut dire format int. on le met 3 fois car il y a 3 variables a afficher (a,b,c) et le \n c pour faire un retour a la ligne
      0
    3. exta
       
      ok merci, pour les valeurs diffentes a prend jusqu a 7, b 8 et c 9, comme ca on a tous les chiffres ?
      0
    4. Thorak83 Messages postés 1140 Statut Membre 156
       
      non tu n'auras pas mes 8.. et les 9..
      0
    5. exta
       
      8 et 9 sont avec b et c non ? vu que c est a trois nombres comment faire autrement ? a s occupe des 7 premiers, b du 8 et c du 9 ? et vu qu a chaque fois b=a+1 etc on tombe sur une composition de 3 chiffres qui se sont jamais les memes ? apres c est fort probable que je comprenne mal, comment auriez vous fait ?
      0
  8. juliencolin54 Messages postés 238 Statut Membre 55
     
    Bonjour,

    Tu devrais être un peu plus autonome pour réaliser la piscine d'Epitech.
    L'École t'oblige normalement à la faire par toi même, c'est comme ça que l'on apprends !

    Cdlt,
    0
    1. Thorak83 Messages postés 1140 Statut Membre 156
       
      C'est très moralisateur comme discours. surtout pour quelqu'un de 19 ans
      Ici on pose des questions et on essaie d'y répondre sans faire de morale. Je pense qu'il est assez grand pour comprendre que faire du copier/coller est stupide. De plus, si vous avez lu l'ensemble des post vous aurez remarqué qu'il essaye de comprendre ce que je lui donne.
      Donc votre post ne sert à rien
      0
    2. exta
       
      Je ne fais pas l ecole d epitch.
      Cdlt.
      0
    3. juliencolin54 Messages postés 238 Statut Membre 55
       
      Bonjour à vous deux

      Thorak83,
      Non, ce n'est moralisateur, je voulais seulement passer un message, un commentaire.
      Peut-être m'avez vous mal compris, ou que je me suis mal exprimé.
      Par "Tu devrais", je conseille et n'oblige pas.
      Je me suis dit que vous ne saviez peut-être pas que ce sont des exercices d'Epitech, alors j'ai fait cette remarque pour éclaircir leur but.
      Ce que j'ai voulu dire c'est : qu'ils sont très formateurs, surtout lorsqu'on réfléchis pendant longtemps dessus.
      Vous avez l'interprétation un peu facile en me faisant dire ce que je n'ai pas dit; je cite : "Je pense qu'il est assez grand pour comprendre que faire du copier/coller est stupide".
      Et ça, c'est stupide.
      Aussi, je ne sais pas si c'est la rage ou l'excès de confiance en vous qui vous anime, pour me juger si facilement en fonction de mon age.
      C'est blessant, alors, sans vouloir vous offenser, réfléchissez à deux fois avant de rebondir si facilement. Merci.

      exta,
      Il n'y a pas de soucis là-dessus, c'est juste une information que je te donnes sur leur provenance. Pour que tu saches à quoi tu as affaire, et comment les aborder !
      D'ailleurs, maintenant tu trouveras peut-être plus facilement des infos puisque tu sais comment les trouver. Enfin, je l'espère :)

      En espérant n'avoir pas été trop agressif Thorak83.
      Cordialement,
      0