IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

tableau de nbrs positifs et négatifs


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 122
    Par défaut tableau de nbrs positifs et négatifs
    bonjour
    voilà maintenant j'ai un autre probléme

    j'ai un tableau t de n élement positifs ou négatifs ,je doit placer les - au début et les +a la fin et sans utiliser de décalage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    #include<stdio.h>
    #include<conio.h>
     void main()
    {
    clrscr();
    int i;int j; int temp,n;
    int tab[10];
    printf("entrez n");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
     
    printf("entrz l'‚lement %d",i) ;
    scanf("%d",&tab[i]);
    }
    while (i<j)
         {
         while(tab[i]<0)
    	   {
         i++;
    	    }
         while(tab[j]>0)
    	     {
         j-- ;
    	      }
         temp=tab[i];
         tab[i]=tab[j];
         tab[j]=temp;
           }
         for(i=0;i<n;i++)
         {
         printf("%d\t",tab[i]);
         }
     
         getch() ;
         }

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par pipip
    bonjour
    voilà maintenant j'ai un autre probléme
    Ton code partiellement corrigé et commenté. Pose des questions si tu ne comprends pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    /* -d- presentation du code horrible ! Code reindente.
    (fonction integree dans Code::Blocks) */
    #include <stdio.h>
     
    /* -ed- pas portable et probablement inutile
    #include<conio.h>
    */
     
    /* -ed-
     void main()
     
     main () retourne int. Toujours.
     */
    int main (void)
    {
    /* -ed- pas portable et inutile
    clrscr();
    */
       int i;
       int j;
       int temp, n;
       int tab[10];
    /* -ed-
       printf ("entrez n");
     
    Rustique ! prevoir au moins un espace.
    Attention, pouretre certain que l'affichage se fasse fbien, forcer avec fflush (stdout)
    */
       printf ("entrez n : ");
       fflush (stdout);
     
       scanf ("%d", &n);
    /* -ed- scanf() est une fonction difficile a utiliser correctement.
    Preferer fgets() et les fonctions de nettoyage et de
    conversion qui vont bien... */
     
     
    /* -ed- Que se passe-t-il si n est > 10 ? */
       for (i = 0; i < n; i++)
       {
          /* -ed-
             printf ("entrz l'‚lement %d", i);
     
             eviter les accents. Pas portable.
             Attention aux fautes de rappe...
           */
          printf ("entrez l'element %d : ", i);
          fflush (stdout);
          scanf ("%d", &tab[i]);
       }
     
       /* -ed- j n'a jamais ete initialise. Comportement indefini. A corriger. */
       while (i < j)
       {
          while (tab[i] < 0)
          {
             i++;
          }
          while (tab[j] > 0)
          {
             j--;
          }
          temp = tab[i];
          tab[i] = tab[j];
          tab[j] = temp;
       }
     
       for (i = 0; i < n; i++)
       {
          printf ("%d\t", tab[i]);
       }
    /* -ed-
       getch ();
     
       pas portable et inutile si tu utilises un IDE au point comme Code::Blocks
     
       sinon, getchar() mais apres un scanf(), ca va etre douteux...
     
       Dev-C++ recommande
     
       system ("pause");
       */
     
    /* -ed- car main() retourne un int */
       return 0;
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 122
    Par défaut
    voila j'ai fait les corréctions que tu ma donner
    mais quand j fais entrer par exemple -1 9 -2 5 -8
    il ne fait que la moitié du travail et me donne
    -1 -8 5 -2 9

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
     
    #include<stdio.h>
    #include<conio.h>
     
     int main(void)
    {
     
    int i;int j; int temp,n;
    int tab[10];
     
    printf("entrez n:");
    fflush(stdout);
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
     
    printf("entrz l'element %d",i) ;
    fflush(stdout);
    scanf("%d",&tab[i]);
    }
      i=0;
      j=n-1;
    while (i<j)
         {
         while(tab[i]<0)
    	   {
         i++;
    	    }
         while(tab[j]>0)
    	     {
         j-- ;
    	      }
         temp=tab[i];
         tab[i]=tab[j];
         tab[j]=temp;
           }
         for(i=0;i<n;i++)
         {
         printf("%d\t",tab[i]);
         }getch();
         return 0 ;
         }

  4. #4
    Membre expérimenté
    Inscrit en
    Septembre 2006
    Messages
    414
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 414
    Par défaut
    si j'ai bien compris ce que tu cherche, voila le code:





    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    #include<stdio.h>
    #include<conio.h>
     
     int main(void)
    {
     
    int i;int j; int temp,n;
    int tab[10];
     
    printf("entrez n:");
    fflush(stdout);
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
     
    printf("entrz l'element %d",i) ;
    fflush(stdout);
    scanf("%d",&tab[i]);
    }
     
    /***partie corrigée***/
     
    for(i=0,j=0;i<n;i++)
    {
        if (tab[i]<0) 
        {
            temp=tab[j];
            tab[j]=tab[i];
            tab[i]=temp;
            j++;
        }
     
    }
     
    /******************/
     
         for(i=0;i<n;i++)
         {
         printf("%d\t",tab[i]);
         }getch();
         return 0 ;
         }
    PS: je ne l'ai pas testé....mais normalement ca devrait marcher....

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 122
    Par défaut
    youpi merci à toi kamouminator ca marche et c'est plus simple

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par pipip
    youpi merci à toi kamouminator ca marche et c'est plus simple
    Oui, il a écrit le code à ta place... C'est sûr que c'est plus simple !

Discussions similaires

  1. Agrégation CASE somme positif et négatif
    Par sdelaunay dans le forum Développement
    Réponses: 2
    Dernier message: 09/08/2012, 22h03
  2. DateDiff() résultat positif ou négatif
    Par Guy FALESSE dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/10/2011, 16h01
  3. [Turbo Pascal] Tri de nombres positifs et négatifs
    Par khmamed dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 06/03/2011, 17h40
  4. nombre aléatoire positif et négatif
    Par isatis28 dans le forum C
    Réponses: 18
    Dernier message: 22/11/2006, 11h53
  5. Réponses: 7
    Dernier message: 22/04/2005, 14h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo