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


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 49
    Points : 25
    Points
    25
    Par défaut tableau
    je veux écrire un prog qui supprime une case dont l'indice est donné d'un tableau d'entiers T.Les cases suivant l'indice I doivent étre "décalées".
    Voilà mon progil y a une erreur à l'execution,si vous la corriger?)

    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
    #include<stdio.h>
    void main()
    {
    	char t[50];/*tableau donné*/
    	int i,n,j;
     
    	printf("Donner la taille du tableau\n");
    	scanf("%i",&n);
     
    	/*saisie du tableau*/
    	for(i=0;i<n;i++)
    	{
    		printf("Donner le %d%s du tableau\n",(i+1),(i)?"eme":"er");
    		scanf("%s",&t[i]);
    	}
    	printf("Donner l'indice pour supprimer l'élément\n");
    	scanf("%i",&j);
    	t[j]=' ';
    	for(i=n-1;i>j;i--)
    	{
    		t[i]=t[i-1];
    	}
     
    	for(i=0;i<n;i++)
    	{
    		printf("t[%i] est:%s\n",i,t[i]);
    	}
    }

  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 Re: tableau
    Citation Envoyé par devdébuto
    Voilà mon progil y a une erreur à l'execution,si vous la corriger?)

    #include<stdio.h>


    A part ça, tu mets un peu n'importe quoi comme formateur de printf() et scanf()... C'est incohérent avec le type des variables. Normal que ça nous à la gueule.

    L'algo est faux. En le corrigeant, on arrive à ça:
    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
     
    Donner la taille du tableau
    5
    Donner le 1er du tableau
    a
    Donner le 2eme du tableau
    z
    Donner le 3eme du tableau
    e
    Donner le 4eme du tableau
    r
    Donner le 5eme du tableau
    t
    Donner l'indice pour supprimer l'element
    2
    t[0] est: a
    t[1] est: z
    t[2] est: r
    t[3] est: t
    t[4] est:
    Pour les saisies, tu vas souffrir. Je recommande ceci :

    http://emmanuel-delahaye.developpez....tes.htm#saisie
    http://emmanuel-delahaye.developpez....s.htm#fichiers
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       char t[50];/*tableau donné*/
    ...
          scanf("%s",&t[i]);
    t[i] n'est pas une chaîne de caractères (%s) mais UN char. Il doit être lu avec %c. Idem pour printf
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 49
    Points : 25
    Points
    25
    Par défaut tableau
    Mais parce que j'ai fait tout d'abord avec le %c et j n'ai pas trouvé le bon résultat.

  5. #5
    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 Re: tableau
    Citation Envoyé par devdébuto
    Mais parce que j'ai fait tout d'abord avec le %c et j n'ai pas trouvé le bon résultat.
    Et ? Tu essayes des combinaisons de caractères jusqu'à ce que ça marche ? Programmation aléatoire ?

    Et si tu reflechissais plutôt ?
    Pas de Wi-Fi à la maison : CPL

  6. #6
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut Re: tableau
    Citation Envoyé par devdébuto
    Mais parce que j'ai fait tout d'abord avec le %c et j n'ai pas trouvé le bon résultat.
    D'apres moi (je me repete j'ai l'impression) lorsque tu saisie ton caractere et que tu appuie sur Entrée pour le valider, le \n est mis dans le buffer.
    Lors du scanf d'apres, il prendra le \n dans le buffer, ce qui aura pour effet que tu aura un \n une case sur 2.
    Ma méthode avec scanf pour saisir un caractère, sans controle d'erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    scanf("%c%*c", &t[i]);
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  7. #7
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut Re: tableau
    Citation Envoyé par devdébuto
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	for(i=n-1;i>j;i--)
    	{
    		t[i]=t[i-1];
    	}
     
    }
    Tu decale dans le mauvais sens ce serait plutot
    Ou (mais il faut changer le for)
    Citation Envoyé par devdébuto
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	for(i=0;i<n;i++)
    	{
    		printf("t[%i] est:%s\n",i,t[i]);
    	}
    }
    Ton tableau comportant desormais un caractere de moi, il faut decrementer n ou remplcaer i<n par i<n-1;
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 277
    Points : 230
    Points
    230
    Par défaut Re: tableau
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par devdébuto
    Mais parce que j'ai fait tout d'abord avec le %c et j n'ai pas trouvé le bon résultat.
    Et ? Tu essayes des combinaisons de caractères jusqu'à ce que ça marche ? Programmation aléatoire ?

    Et si tu reflechissais plutôt ?
    Je crois que c'est le meilleur conseil du monde (parole de quelqu'un qui a souvent programmé aléatoirement).

  9. #9
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut Re: tableau
    Citation Envoyé par Le Furet
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par devdébuto
    Mais parce que j'ai fait tout d'abord avec le %c et j n'ai pas trouvé le bon résultat.
    Et ? Tu essayes des combinaisons de caractères jusqu'à ce que ça marche ? Programmation aléatoire ?

    Et si tu reflechissais plutôt ?
    Je crois que c'est le meilleur conseil du monde (parole de quelqu'un qui a souvent programmé aléatoirement).
    C'est d'ailleurs une métode éprouvée : La méthode R.A.C.H.E

    Il doit y avoir un débat la dessus, inutile de discuter de cela ici.

  10. #10
    Membre habitué Avatar de ccensam
    Inscrit en
    Juillet 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2005
    Messages : 128
    Points : 162
    Points
    162
    Par défaut Respecter svp la syntaxe de scanf() et printf()
    Il faut respecter la synthaxe des fonction Scanf() et printf() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    %d : entier
    %d , %f : reél
    %c : caractère
    %x : hexadécimal
    %s : chaine de caractère
    .......
    .......
    Tu peux consulter des tutoriaux, sur le language.
    Voila un petit code qui fait la supression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    main()
    {
    	.........
    		scanf("%d",&n);
    		for(i=n;i<MAX;i++)  t[i] = t[i+1]; // MAX = maximum du tableau ne doit pas étre constante.
    		MAX--;
    	.........
     
    }
    Merci,je te conseille de marcher pas à pas et.... GOUTE PAR GOUTE LES RIVIERES SE FORMENT
    - Microsoft Dynamics AX Technical Expert
    - OpenERP Module Developper
    - Mécanicien informaticien passioné
    - CV : http://www.viadeo.com/fr/profile/mohamed-amine.

  11. #11
    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 Re: Respecter svp la syntaxe de scanf() et printf()
    Citation Envoyé par ccensam
    <...> synthaxe <...> language.
    <...> supression <...> GOUTE <...>
    Quel festival !
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. trier un tableau et compter des elements du tableau
    Par remi51 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/06/2002, 16h51
  2. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  3. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 12h21
  4. transmision de tableau en parametre
    Par Horus dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/05/2002, 11h15
  5. Réponses: 4
    Dernier message: 13/05/2002, 16h43

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