Languge C 'probleme'

Résolu
Red-Falcon Messages postés 295 Date d'inscription   Statut Membre Dernière intervention   -  
Elwish Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   -
Salut a tous je fais mes débuts dans le language C et je voulait créer un petit script mais voia qu'il ne fonctionne pas aidez moi SVP.

Script=

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
long nombreDeVies;
nombreDeVies = 9;
printf ("vous avez %ld vie")
system("PAUSE");
return 0;
}

20 réponses

sword11 Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   62
 
("vous avez %ld vie", nombreDeVie);
0
sword11 Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   62
 
Je crois bien que c'est là que ca plante
0
Red-Falcon Messages postés 295 Date d'inscription   Statut Membre Dernière intervention   69
 
Ah je viens d'essayer ce que tu m'as dit et ça fonctionne maintenant merçi beaucoup.
0
sword11 Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   62
 
T'inquiète pas, j'ai moi aussi suivi les cours du site du zero ;)
Maintenant j'en suis au C++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Red-Falcon Messages postés 295 Date d'inscription   Statut Membre Dernière intervention   69
 
Mdr
0
Red-Falcon Messages postés 295 Date d'inscription   Statut Membre Dernière intervention   69
 
Comment tu le sais ??
0
sword11 Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   62
 
Je reconnais le script que Mathieu utilisait en C
0
Red-Falcon Messages postés 295 Date d'inscription   Statut Membre Dernière intervention   69
 
Ah c'est vrai j'aurai pas du le changer
0
sword11 Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   62
 
Tu compte te mettre au C++ apres ?
0
Red-Falcon Messages postés 295 Date d'inscription   Statut Membre Dernière intervention   69
 
Oui Oui mais je ne presse pas les choses !
0
sword11 Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   62
 
T'as raison, moi, j'y suis, c'est genial, plein de fonction améliorées etc...
Enfin, vive le site du zero !!!! :p
0
Red-Falcon Messages postés 295 Date d'inscription   Statut Membre Dernière intervention   69
 
Ah et j'ai une autre question comment compose t'on "&" ??
0
Red-Falcon Messages postés 295 Date d'inscription   Statut Membre Dernière intervention   69
 
Exactement le site du zéro et super !!!
0
sword11 Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   62
 
Eh bien, moi j'ai un clavier d'ordianateur portable et c'est en dessous du 1
0
Red-Falcon Messages postés 295 Date d'inscription   Statut Membre Dernière intervention   69
 
&&& Ah ok merçi je l'avait même pas vus &&&
0
sword11 Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   62
 
Mais de rien et si tu as d'autres problèmes : sword11 @ live . fr
0
Red-Falcon Messages postés 295 Date d'inscription   Statut Membre Dernière intervention   69
 
Ok merçi beaucoup .;=)
0
dirkkuyttillidie Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
salut tout le monde
voila je travaile sur les pointeurs en C et voila l'énoncé de l'exercice:

Ecrire un programme qui lit deux chaînes de caractères CH1 et CH2 au clavier et élimine toutes les lettres de CH1 qui apparaissent aussi dans CH2. Utiliser deux pointeurs P1 et P2, une variable logique TROUVE et la fonction strcpy.

Exemples:
Bonjour
Bravo
==>
njou

Bonjour
bravo
==>
Bnjou

abacab
aa
==>
bcab

et voila la solution:

#include <stdio.h>
#include <string.h>
main()
{
/* Déclarations */
char CH1[101], CH2[101]; /* chaînes données */
char *P1, *P2; /* pointeurs d'aide dans CH1 et CH2 */
int TROUVE; /* indicateur logique: vrai, si le caractère */
/* actuel dans CH1 a été trouvé dans CH2. */

/* Saisie des données */
printf("Entrez la première chaîne de caractères"
" (max.100 caractères) :\n");
gets(CH1);
printf("Entrez la deuxième chaîne de caractères"
" (max.100 caractères) :\n");
gets(CH2);
/* Eliminer les lettres communes */
/* Idée: Parcourir CH2 de gauche à droite et contrôler */
/* pour chaque caractère s'il se trouve aussi dans CH1. */
/* Si tel est le cas, éliminer le caractère de CH1 à */
/* l'aide de strcpy. */
for (P2=CH2; *P2; P2++)
{
TROUVE = 0;
for (P1=CH1 ; *P1 && !TROUVE ; P1++)
if (*P2==*P1)
{
TROUVE = 1;
strcpy(P1, P1+1);
}
}
/* Affichage du résultat */
printf("Chaîne résultat : \"%s\" \n", CH1);
return 0;
}


et j'arrive pas à comprendre le dernier bloc 'c'est à dire ça:

for (P2=CH2; *P2; P2++)
{
TROUVE = 0;
for (P1=CH1 ; *P1 && !TROUVE ; P1++)
if (*P2==*P1)
{
TROUVE = 1;
strcpy(P1, P1+1);
}
}


je doit savoir la signiffication de chaque ligne s'l vous plait par exemple dans la boucle for il ya *P1 && !TROUVE j'ai rien compri
s'il vous plait j'attent votre reponse
pliiiiiiiiiiz
0
Jérôme
 
Ce sera plus lisible si tu copies ça dans un éditeur colorisé et si tu arranges la présentation...

for (P2=CH2; *P2; P2++)
// P2=CH2 //P2 pointe sur le 1er caractère de CH2
// *P2 //la valeur (le caractère) pointée par P2 est différent de 0
// //personellement, j'aurais mis (*P2=='\0') c'est plus lisible
// //'\0' est le caractère de fin de chaine de caractère et sa valeur ASCII est égale à zéro
// P2++ //le pointeur P2 avance d'un caractère en fin de boucle
{
TROUVE=0; //c'est à dire pas TROUVE de caractères égaux
for (P1=CH1 ; *P1 && !TROUVE ; P1++)
// P1=CH1 //P1 pointe sur le 1er caractère de CH1
// *P1 && !TROUVE //caractère pointé par P1 non nul et pas de caractères égaux TROUVE
// P1++ //le pointeur P1 avance d'un caractère en fin de boucle
if (*P2==*P1) //si le char pointé par P2 égal le char pointé par P1
{
TROUVE=1; //2 char égaux TROUVE
strcpy(P1,P1+1); //recopier à la position P1 (de CH1), la sous chaine qui commence au char P1+1
} //en gros on décale d'un char le reste de la chaine
}

Le truc important est de se rappelé qu'une chaine de char se termine par '\0' et non à la fin du tableau.
C'est sur ce caractère que strcopy ou printf se base pour arrêter la lecture du tableau de char.
C'est aussi sur ce caractère que l'algo ici présent s'arrête.

Voilà, c'est un peu tard pour la réponse mais ça faisait longtemps que j'avais pas fait de C.
Je me suis fait plaisir

Jérôme
0
Elwish Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   3
 
Petite précision, lesite du zéro est génial pour apprendre le minimum de la base.

Mais ne croyer pas qu'avec ça vous connaitrez une bonne partie du language !

Le langage C est bien fait, mais le C++ (Qt on le laisse à part) est trop maigre.


Ceci n'est pas contre le site du zéro (j'y suis) juste pour informer !
-1