fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main() {
  5. int H;
  6. printf("Entrez la hauteur du diamant (impair) : ");
  7. scanf("%d", &H);
  8.  
  9. if (H <= 0) {
  10. printf("Hauteur invalide.\n");
  11. return 0;
  12. }
  13. if (H % 2 == 0) { // Ajuster si hauteur paire
  14. printf("Hauteur paire detectee, passage a %d\n", H+1);
  15. H++;
  16. }
  17.  
  18. int mid = H / 2;
  19.  
  20. for (int i = 0; i < H; i++) {
  21. for (int j = 0; j < H; j++) {
  22. int dx = abs(i - mid);
  23. int dy = abs(j - mid);
  24.  
  25. // Vérifie si on est dans le diamant
  26. if (dx + dy <= mid) {
  27.  
  28. // Bord du diamant
  29. if (dx + dy == mid) {
  30. putchar('*');
  31. }
  32. // Diagonale principale (grande)
  33. else if (i == j) {
  34. putchar('*');
  35. }
  36. // Diagonale secondaire (petite)
  37. else if (i + j == H - 1) {
  38. putchar('*');
  39. }
  40. else {
  41. putchar(' ');
  42. }
  43. } else {
  44. putchar(' ');
  45. }
  46. }
  47. putchar('\n');
  48. }
  49. return 0;
  50. }
  51.  
Success #stdin #stdout 0s 5312KB
stdin
9
stdout
Entrez la hauteur du diamant (impair) :     *    
   * *   
  *   *  
 * * * * 
*   *   *
 * * * * 
  *   *  
   * *   
    *