Un sapin de noel

Contenu du snippet

Il dessine un joli sapin de noel sur la sortie standard :)

Source / Exemple :


/*

    • sapin.c for Sapin de Noel
    • Made by ali mdidech
    • Started on Sat Oct 11 14:19:02 2003
    • Last update Tue Oct 21 03:37:25 2003
  • /
#include <stdio.h> void my_putchar(char c) { write(1, &c, 1); } int last_line(int taille) { int i; int jump; int lastline; lastline = 7; jump = 6; for (i = 1; i < taille; i++) { if ((i % 2) != 0) lastline += jump; else if (i != 1) { jump += 2; lastline += jump; } } return (lastline); } int first_line(int taille) { int i; int jump; int firstline; firstline = 1; jump = 4; for (i = 1; i < taille; i++) { if ((i % 2) != 0) firstline += jump; else if (i != 1) { jump += 2; firstline += jump; } } return (firstline); } void draw(int num, int taille) { int i; int j; int jump; int blank; int stars; int hauteur_branche; blank = last_line(taille) / 2 - first_line(num) / 2; stars = first_line(num) - 1; jump = 4; hauteur_branche = num + 3; for (i = 0; i < hauteur_branche; i++) { for (j = 0; j < blank; j++) my_putchar(' '); for (j = 0; j < stars; j++) my_putchar('*'); blank--; stars += 2; my_putchar('*'); my_putchar('\n'); } } void draw_tronc(int taille) { int i; int j; int blank; int largeur_tronc; int hauteur_tronc; if ((taille % 2) != 0) largeur_tronc = taille; else largeur_tronc = taille + 1; hauteur_tronc = taille; blank = (last_line(taille) / 2) - (largeur_tronc / 2); for (i = 0; i < hauteur_tronc; i++) { for (j = 0; j < blank; j++) my_putchar(' '); for (j = 0; j < largeur_tronc; j++) my_putchar('|'); my_putchar('\n'); } } void sapin(int taille) { int i; if (taille > 0) { i = 1; while (i <= taille) { draw(i, taille); i++; } draw_tronc(taille); } } int trans(char *arg, int length) { int res; int p; res = 0; p = 1; res += (arg[(length--)] - '0'); while ((length >= 0) && (arg[length] != '-')) { p *= 10; res += ((arg[length--] - '0') * p); } return (res); } int main(int argc, char **argv) { int length; if (argc == 2) { length = 0; while(argv[1][length] != 0) length++; length--; sapin(trans(argv[1], length)); } else printf("Veuillez entrer la taille du sapin\n"); }

Conclusion :


Tapez le nom du programme avec un entier en argument pour specifier la taille du sapin :)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.