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

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 122
    Points : 54
    Points
    54
    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 sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    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 du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 122
    Points : 54
    Points
    54
    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 averti
    Inscrit en
    Septembre 2006
    Messages
    414
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 414
    Points : 354
    Points
    354
    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 du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

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

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    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 !

  7. #7
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    414
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 414
    Points : 354
    Points
    354
    Par défaut
    rhooo, ca va, c'est pas comme s'il avais pas cherché !
    pi c'etait vraiment trop compliqué son truc !

    je vais culpabiliser moi....

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 122
    Points : 54
    Points
    54
    Par défaut
    ooooooooooo arrêtez Mr Delahaye ne vous vexez pas je vous promet la prochaine fois c'est vous qui allez écrire le code à ma place ok chacun son tour.

    alors a demain pour un autre problème

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par pipip
    je vous promet la prochaine fois c'est vous qui allez écrire le code à ma place
    Non. T'as rien compris. Le but est de t'aider à résoudre ton problème, pas de le résoudre à ta place.

  10. #10
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    414
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 414
    Points : 354
    Points
    354
    Par défaut
    Citation Envoyé par pipip
    ooooooooooo arrêtez Mr Delahaye ne vous vexez pas je vous promet la prochaine fois c'est vous qui allez écrire le code à ma place ok chacun son tour.

    alors a demain pour un autre problème


    hum....j'essaye de te defendre et tu t'enfonce un peu plus....

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