Premiers pas en C [Fermé]

- - Dernière réponse : juliencolin54
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
- 13 sept. 2013 à 10:57
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 !
Afficher la suite 

7 réponses

Messages postés
1064
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
105
0
Merci
Bonjour,

#include <stdio.h>

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

return 0;
}

Cordialement
0
Merci
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.
Thorak83
Messages postés
1064
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
105 -
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);
}
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 ?
Thorak83
Messages postés
1064
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
105 -
voici en version WHILE

#include <stdio.h>

int main()
{
char i;
i=97;
while (i<123)
{
printf("%c",i);
i++;
}
return 0;
}
0
Merci
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.
[Dal]
Messages postés
5284
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
18 novembre 2019
820 -
oui, et
int main(void)
devrait être le prototype.

Dal
merci pour vos reponses ! :)
0
Merci
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 <
desole pour les erreurs de frappe je suis sur un qwerty il faut s y faire...
0
Merci
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....?
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);
}
}
}
Thorak83
Messages postés
1064
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
105 -
tu dois afficher tous les chiffres de 0 à l'infini ? C quoi exactement l'exo.
Thorak83
Messages postés
1064
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
105 -
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
Merci
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.
Avec ca ils m affichent tous les nombres meme identique 001 011 etc
Thorak83
Messages postés
1064
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
105 -
qu'est-ce que tu appelles identiques ?
Pour moi ils ne le sont pas
Thorak83
Messages postés
1064
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
105 -
tu veux dire qu'il ne faut pas qu'il y ai 2 fois le même digit ? si c le cas alors suffit de changer le test

#include <stdio.h>

int main (void)
{
int a=0;
int b=0;
int c=0;
while (a<=9)
{
while (b<=9)
{
while (c<=9)
{
if ((a != b) && (a != c) && (b != c))
{
printf ("%d%d%d\n", a, b, c);
}
c++;
}
c=0;
b++;
}
b=0;
a++;
}
}
Thorak83
Messages postés
1064
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
105 -
ca c pour l'autre exercice
#include <stdio.h>

void affiche(int a)
{
if (a < 0)
printf("N");
else
printf("P");
}

int main (void)
{
affiche(-10);
}
Parfait merci beaucoup ca m aide bien a comprendre ! Juste pourquoi -10?
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
49
0
Merci
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,
Thorak83
Messages postés
1064
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
105 -
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
Je ne fais pas l ecole d epitch.
Cdlt.
juliencolin54
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
49 -
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,