Premiers pas en C

Fermé
exta - 11 sept. 2013 à 16:39
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 !
A voir également:

7 réponses

Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
Modifié par Thorak83 le 11/09/2013 à 17:02
Bonjour,

#include <stdio.h>

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

return 0;
}

Cordialement
0
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
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
11 sept. 2013 à 17:22
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
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
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
11 sept. 2013 à 17:34
voici en version WHILE

#include <stdio.h>

int main()
{
char i;
i=97;
while (i<123)
{
printf("%c",i);
i++;
}
return 0;
}
0
Utilisateur anonyme
11 sept. 2013 à 17:38
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
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
11 sept. 2013 à 17:46
oui, et
int main(void)
devrait être le prototype.

Dal
0
merci pour vos reponses ! :)
0
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
desole pour les erreurs de frappe je suis sur un qwerty il faut s y faire...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
12 sept. 2013 à 08:53
tu dois afficher tous les chiffres de 0 à l'infini ? C quoi exactement l'exo.
0
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
Modifié par Thorak83 le 12/09/2013 à 09:01
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
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
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
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
12 sept. 2013 à 09:29
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
ok merci, pour les valeurs diffentes a prend jusqu a 7, b 8 et c 9, comme ca on a tous les chiffres ?
0
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
12 sept. 2013 à 09:57
non tu n'auras pas mes 8.. et les 9..
0
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
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
12 sept. 2013 à 12:51
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
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
Modifié par Thorak83 le 12/09/2013 à 14:13
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
Je ne fais pas l ecole d epitch.
Cdlt.
0
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
13 sept. 2013 à 10:57
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