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 :

débogage et problème d'exécution


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 16
    Par défaut débogage et problème d'exécution
    bonjour

    je trouve pas l'erreur que je fait dans mon code,en faite objective de ce programme de trouve toutes les mots dans une chaines qui ont les même longueur et ont aussi même caractères (ordre différents) et les affiches

    exemple

    \\affichage

    bonjour salu asul un paule nu

    bonjour
    salu asul
    un nu
    paule

    par contre avec ce code j'ai pas trouve de problèmes du compilation mais débogage lors d l'exécution

    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
    87
    88
    89
    90
    91
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    int init(char *t,char *p[])
    {
    	int i,k;
    	p[0]=t;
    	k=1;
    	for (i=1;t[i]!='\0';i++)
    	 if(t[i]==' ' && t[i+1]!=' ')
    	   {
    				 i++;					
    					p[k]=t+i;
    					k++;
    					}
     
    					return k;
    }
     
     
    int nboc(char *ch,char x)
    {
    int nb=0,i;
    for(i=0;ch[i]!='\0';i++)
    {
    	if(ch[i]==x)
    	  nb++;
    }
    return nb;
    }
     
     
    int isa(char *ch1,char *ch2)
    {
    	int n1,n2,isa=1,i;
    n1=strlen(ch1);
    n2=strlen(ch2);
     
    if(n1!=n2)
       isa=0;
     
    i=0;
    while((i<n1)&& (isa==1))
    {
    	if(nboc(ch1,ch1[i])!=nboc(ch2,ch1[i]))
    	  isa=0;
    			i++;
    }											       		  
    return isa;
    }
    void programme(char *ch,char *p[])
    {
    int n,test,i,j,k;
    	n=init(ch,p);
    	for(i=0;i<n-1;i++)
    	{
    		j=i+1;
    		k=0;
    		while(isa(p[i],p[j])==0 && j<n)
    		 {
    				j++;
    				k++;
    				}
    		if(k==(n-i+1))
    		  {
    				printf("%s",*p[i]);
    		  printf("\n");
    				}
    }
     
       while(isa(p[i],p[j])==1 && j<n)
        {
    					if(test==0)
    					  {
    							printf("%s",*p[i]);
    					  test=1;
    							}
    							printf("%s",*p[j]);
    							j++;
    					}
     
    }	
     
    int main()
    {
    int n;
    char ch[]="bonjour salu asul un fred nu";
    char *p[1000];
    programme(ch,p);
    system("pause");
    }

  2. #2
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 16
    Par défaut pointeur null en C
    bonjour

    je voudrais a partir de cette fonction rendre les pointeur null pour n'afficher pas les chaines trouve deux fois.
    Est ce que quelqu'un pourrait m'éclairer pourquoi ne fonctionne pas?(il y a pas de erreur de compilation mais il y aun plantage en affichage après l'exécution)
    Merci beaucoup!

    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
    void programme(char *ch,char *p[])
    {
    int n,test,i,j,k;
    	n=init(ch,p);
    	printf("\n%d",n);
    	for(i=0;i<n-1;i++)
    	{
    	j=i+1;
    	test=0;
    printf("\n");
    while(j<n)
    {
    if(isa(p[i],p[j])==1 && p[j]!=NULL && p[j]!=NULL )
        {
    					if(test==0)
    					  {
    						affichage(p[i]);
    					  test=1;
    							}
    						affichage(p[j]);		
    					  p[j]=NULL;
    					}
    	j++;
    }
     
    }
    }

  3. #3
    Expert confirmé
    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
    Par défaut
    Comme je te l'ai signalé précédemment, l'ordre des termes dans un && ou dans un || est important.
    Si la fonction isa(...) ne traite pas les pointeurs NULL, il faut que le test soit antérieur à l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(p[j]!=NULL && p[j]!=NULL && isa(p[i],p[j])==1 )

Discussions similaires

  1. Problème d'exécution avec Dec C++
    Par PNL dans le forum C
    Réponses: 20
    Dernier message: 02/10/2005, 03h59
  2. Problème pour exécuter une chaîne de caractères
    Par Pongo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/09/2005, 10h34
  3. Problème d'exécution : 'rtl60.bpl introuvable'
    Par zeddy23 dans le forum EDI
    Réponses: 3
    Dernier message: 27/07/2005, 20h44
  4. Réponses: 5
    Dernier message: 19/04/2005, 08h50
  5. Problème à l'exécution avec wxWindows (compilé avec BCC55)
    Par ShootDX dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 14/11/2003, 18h04

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