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

Dev-C++ Discussion :

AIDEZ MOI ! SVP :s


Sujet :

Dev-C++

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut AIDEZ MOI ! SVP :s
    Bonjour tout le monde,

    J'aurai besoin de votre aide pour me dire pourquoi ça ne s' exécute pas ! (Dés que je tape une phrase... Ensuite ça ne marche pas pour la suite)

    L’énoncé de l'exo:
    soit une phrase contenant des mots séparés par un seul blanc. Ecrire le programme qui sauvegarde les mots de la phrase dans un tableau de chaînes de caractères (matrice).
    ( J'ai utilisé l'allocation dynamique)
    Voici le prigramme:

    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    #include<malloc.h>








    main()


    { int n=20; char t[n], mo[30], y,**a, *x;
    int cpt,mot,j,i,k,m,taille,cmot;

    { printf(" donner une phrase qui se termine par un point\n");
    scanf("%s",&t);

    i=0; cpt=0;
    {do
    if (t[i]==' ')
    cpt= cpt +1;

    while ((t[i]!='.') && (i<n) ); i++;}
    mot= cpt+1;

    {printf(" le nbr de mot dans cette phrase est: %d", mot); }


    // Ranger chaque mot trouvé dans un vecteur mo
    { for ( m=0; m<taille; m++)
    { for(i=0; i<taille; i++)
    mo[m]=t[i]; } } // t affecte le mot trouvé dans mo
    a[j]= mo ;

    // ALLOCATION de l'espace pour les elments de la matrice
    x = (char*) malloc (mot*taille*sizeof(char));

    // faire le lien entre le vecteur d'@ a et l'espace memoire de elements
    for( i=0; i<mot; i++)
    a[i]= x + i*taille;


    i= taille+2;
    taille=0; // mo affecte le mot dans le vecteur de mots qui pointera sur la matrice

    while ( t[i]!='.'); i++;









    getch();
    }
    }
    _____________________________________

    Merci d'avance,
      0  0

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut


    Ce code est horriblement formaté, et avec les accolades placées AVANT les mot-clés des structures de contrôle, je suis surpris qu'il compile.

    De plus, il y a des erreurs flagrantes:
    • Tu veux une phrase, mais tu utililises scanf("%s"), qui saisit uniquement des mots.
    • Tu utilises scanf("%s") sans limite de taille: Un mot de plus de 19 caractères cause un dépassement de buffer.
    • Tu affectes un pointeur dans une variable supposée prendre un caractère.
    • Tu déréférences le pointeur a sans l'avoir initialisé...
    • Tu as un while suivi d'un point-virgule, qui sera une boucle infinie.
    • etc.


    J'ai réindenté ton code pour que tu vois mieux le bordel que c'est:
    Code C mauvais : 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
    // http://www.developpez.net/forums/d1392089/c-cpp/outils-c-cpp/dev-cpp/aidez-moi-s/
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    #include<malloc.h>
     
    int main(void)
    {
    	int n=20; char t[n], mo[30], y,**a, *x;
    	int cpt,mot,j,i,k,m,taille,cmot;
     
    	{
    		printf(" donner une phrase qui se termine par un point\n");
    		scanf("%s",&t);
     
    		i=0; cpt=0;
    		{
    			do
    				if (t[i]==' ')
    					cpt= cpt +1;
    			while ((t[i]!='.') && (i<n) );
    			i++;
    		}
    		mot= cpt+1;
     
    		{printf(" le nbr de mot dans cette phrase est: %d", mot); }
     
     
    		// Ranger chaque mot trouvé dans un vecteur mo
    		{
    			for ( m=0; m<taille; m++)
    			{
    				for(i=0; i<taille; i++)
    					mo[m]=t[i];
    			}
    		} // t affecte le mot trouvé dans mo
    		a[j]= mo ;
     
    		// ALLOCATION de l'espace pour les elments de la matrice
    		x = (char*) malloc (mot*taille*sizeof(char));
     
    		// faire le lien entre le vecteur d'@ a et l'espace memoire de elements
    		for( i=0; i<mot; i++)
    			a[i]= x + i*taille;
     
     
    		i= taille+2;
    		taille=0; // mo affecte le mot dans le vecteur de mots qui pointera sur la matrice
     
    		while ( t[i]!='.');
    		i++;
     
    		getch();
    	}
    }

    Edit: Et en plus, tu as posté la même question dans plusieurs sous-forums, ce qui est interdit par notre charte.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
      0  0

Discussions similaires

  1. Connection a une BD SQL SERVER Aidez Moi SVP????
    Par pop bob dans le forum Bases de données
    Réponses: 3
    Dernier message: 07/08/2005, 16h29
  2. Recuperation de ma base BD apres la sauvegarde Aidez Moi SVP
    Par pop bob dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/07/2005, 16h38
  3. J'ai du mal à me décider ! Aidez moi svp :)
    Par VanHelsing dans le forum Mobiles
    Réponses: 18
    Dernier message: 01/06/2005, 14h59
  4. Je vois pas d'où vient mon erreur!! Aidez moi SVP
    Par liliboms dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/04/2005, 08h25
  5. Réponses: 29
    Dernier message: 11/05/2004, 13h18

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