Boucle imbriquée et pyramide de nombres

Résolu
Smanyx Messages postés 10 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 14 avril 2010 - Modifié le 28 déc. 2020 à 11:13
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 23 sept. 2009 à 09:57
Salut!

Je voudrais arriver à écrire un programme en C qui affiche la pyramide ci-dessous:
----------1
---------232
--------34543
-------4567654
------567898765
-----67890109876
----7890123210987
---890123454321098
--90123456765432109
-0123456789876543210

Après plusieurs tentatives, je n' y arrive toujours pas. Je joins le code que j'ai pu écrire à ce point:

#include<stdio.h>
#include<stdlib.h>
int main()
 
{     int i,j,k;
     for(i=1; i<=10; i++)
     {
          for (j=1; j<=10-i; j++)
               printf(" ");
          for (k=1; k<=2*i-1; k++)
               printf("%d", k);
               printf("\n");
     }
system("pause");
return 0;
 }

Merci de votre aide.


Smanyx
A voir également:

7 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 14
Modifié le 28 déc. 2020 à 11:15
Salut,

Déjà, un détail :
system("pause");
C'est le mal. Un point d'arrêt sur le "return" c'est beaucoup plus classe. Parce qu'une application console qui fait une pause à la fin, c'est une application console chiante à utiliser.

Ensuite pour ton problème, bin suffit de réfléchir un peu !

Faire une boucle qui monte puis qui descend...
Je te mets la solution en blanc. Mais tu devrais trouver tout seul.

int main()
{
  int i, j, k, delta, val;
  for(i = 1; i <= 10; i++)
  {
   for (j = 0; j <= 10 - i; j++)
    printf(" ");

   for (k = 1; k != 0; k += delta)
   val = i + k - 1;
      if (val >= 10)
       val -= 10;
       printf("%d", val);

     if (k <bold>i) delta</bold> -1;
     }

    printf("\n");
    }

    return 0;
}
0