Petit problémme génant ;

Bonsoir

#include<stdio.h>

main()
{
int n;
int T[n];

do{
printf(" entrer une dimension positive inferieur a 50 : \n");
scanf("%d",&n);

}while( n>50 || n<0 );

}

lorsque l'utilisateur tape une lettre :
le message se répète infiniment, je comprend pas pourquoi.
merci d'avance

3 réponses

  1. j'ai pas compris
    #define taille 15
    1. et merci pour vos efforts.
    2. Contributeur
      TAILLE indique la taille max. Libre à toi de choisir un n plus petit. Si tu veux un tableau contenant exactement la bonne taille, tu as le malloc()...
    3. @fiddyMerci.
      mais si l'utilisateur entre une taille plus grande que n . Qu'est ce que ce passe.
    4. Contributeur
      Plus grand que "TAILLE" tu veux dire. Cela fera un beau plantage. Mais, c'est à toi de faire en sorte que ce cas n'arrive pas. Par exemple avec une boucle while pour obliger l'utilisateur à choisir un nombre entre 0 et TAILLE.
  2. merci

    mais j'ai pas compris,

    int T[n];
    Tu ne peux pas faire ça.
    Soit tu utilises un tableau : int T[TAILLE]; et en début de code tu mets un #define TAILLE 15 par exemple.
    moi je veux que l'utilisateur qui choisi le n a condtion qu'il soit n<50 et positive.
    1. Contributeur
      Bonsoir,

      main()
      Le bon prototype est :
      int main(void)


      int T[n];
      Tu ne peux pas faire ça.
      Soit tu utilises un tableau :
      int T[TAILLE];
      et en début de code tu mets un
      #define TAILLE 15
      par exemple.
      Soit tu fais de l'allocation dynamique avec malloc().

      Sinon bizarre que ton programme parte en boucle infinie si tu as bien mis un "%d".
      Corrige déjà comme j'ai signalé, recompile ton programme. S''il n'y a pas d'évolution, n'hésite pas à reposter ton programme en mettant aussi les messages du compilateur.

      Note : pour les prochaines fois, merci d'utiliser la balise "code c".
      Exemple : <code c>ici tu mets ton code</code>

      1. Merci fiddy pour la réponse; OK je vais corriger.