teste int*

teste int* - C - Programmation

Marsh Posté le 24-08-2006 à 13:00:17    

Bonjours,
 
voila j'aimerais savoir comment faire pour comparer des int avec des int * ??
 
Merci

Reply

Marsh Posté le 24-08-2006 à 13:00:17   

Reply

Marsh Posté le 24-08-2006 à 13:02:51    

et c'est quoi l'intéret, sachant qu'on ne peut jamais prévoir la valeur d'un pointeur (qui n'est autre qu'une adresse mémoire) ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-08-2006 à 13:05:06    

kiooik a écrit :

voila j'aimerais savoir comment faire pour comparer des int avec des int * ??


Code :
  1. int a = 123
  2. int b = 456
  3. int *pb = &b;
  4. if (a > *pb)


si c'est pas ça, essaye d'être plus précis...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 24-08-2006 à 13:06:26    

Je me suis p-ê mal exprimé...
 
En fait, j'ai une fonction qui s'occupe de la saisie d'int et je voudrais vérifier que le nombre entré ne dépasse pas 4 chiffres.

Reply

Marsh Posté le 24-08-2006 à 13:06:37    

Emmanuel Delahaye a écrit :


si c'est pas ça, essaye d'être plus précis...


ah ben moi j'avais compris qu'il voulait comparer avec la valeur du pointeur, et non avec la valeur pointée [:joce]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-08-2006 à 13:08:26    

kiooik a écrit :

Je me suis p-ê mal exprimé...
 
En fait, j'ai une fonction qui s'occupe de la saisie d'int et je voudrais vérifier que le nombre entré ne dépasse pas 4 chiffres.


Code :
  1. if (10000-valeur > 0)
  2. // la valeur est inférieure à 10000, donc est constituée de 4 chiffres


 
edit: en supposant évidemment que tu t'assures que l'utilisateur ne rentre pas autre chose que des chiffres [:aloy]

Message cité 1 fois
Message édité par Harkonnen le 24-08-2006 à 13:09:31

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-08-2006 à 13:18:18    

Bon je vais faire plus simple, voici le code source:
 
#include <stdio.h>
#include <conio.h>
 
 
struct nom
{
   char nom[20], prenom[20];
};
 
struct point
{
  int point[3], position[2];
};
 
 
 
 
 
 
void saisie(struct nom *, int);
void point(struct point*,int);
void main()
{
   struct nom tab[2];
   struct point bat[2];
 
 
   saisie(tab,2);
 
}
 
 
void saisie(struct nom *p,int l)
{    int i;
    struct point bat[2];
 
     for(i=0;i<l;i++)
     {
     printf("Entrez le nom: " );
     gets(p[i].nom);
     printf("Entrez le prenom: " );
     gets(p[i].prenom);
     }
 
     point(bat,2);
 
}
 
 
int point(struct point *m,int l)
{
    int i;
 
    for(i=0;i<l;i++)
    {
 
         printf("Entrez la position: " );
         scanf("%d",m[i].position);
 
 
         if(m[i].position < 999)
 
           printf("ok" );
 
           else
 
           printf("erreur" );
 
    }
 
    getch();
}
 
Quand je compile, il me dit: type mismatch in redeclaration of 'point                (point *, int) '
 
et il dit aussi: "cannot convert 'int'  to 'int *'

Reply

Marsh Posté le 24-08-2006 à 13:22:50    

tu déclares la fonction point comme void point(), et tu l'implémentes en int point() [:pingouino]
et chuis pas sur que ça le fasse de donner le meme nom à la struct point et à la fonction point() [:pingouino]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-08-2006 à 13:29:19    

Oups oui ya une petite erreur ds la déclaration de la fonction point mais je crois pas que ca soit interdit que la struct et la fonction ait le même nom...

Reply

Marsh Posté le 24-08-2006 à 13:32:52    

sans doute, mais c'est jamais bon de donner le même nom à 2 types/fonctions différents


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-08-2006 à 13:32:52   

Reply

Marsh Posté le 24-08-2006 à 13:34:56    

ok mais ca ne résoud pas mon probléme...

Reply

Marsh Posté le 24-08-2006 à 13:40:29    

kiooik a écrit :

Bon je vais faire plus simple, voici le code source:


Horrible !  


Project   : Forums
Compiler  : GNU GCC Compiler (called directly)
Directory : C:\dev\forums\
--------------------------------------------------------------------------------
Switching to target: default
Compiling: main.c
main.c:23: warning: return type of 'main' is not `int'
main.c: In function `main':
main.c:25: warning: unused variable `bat'
main.c: At top level:
main.c:51: error: conflicting types for 'point'
main.c:21: error: previous declaration of 'point' was here
main.c:51: error: conflicting types for 'point'
main.c:21: error: previous declaration of 'point' was here
main.c: In function `point':
main.c:61: warning: comparison between pointer and integer
Process terminated with status 1 (0 minutes, 3 seconds)


Ton code mis au point. Pose des questions si tu ne comprends pas :  

Code :
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <conio.h>
  4. struct nom
  5. {
  6.    char nom[20];
  7.    char prenom[20];
  8. };
  9. struct point
  10. {
  11.    int point[3];
  12.    int position;
  13. };
  14. static void get_s (char *s, size_t size)
  15. {
  16.    fgets(s, size, stdin);
  17.    {
  18.       char *p = strchr (s, '\n');
  19.       if (p != NULL)
  20.       {
  21.          *p = 0;
  22.       }
  23.       else
  24.       {
  25.          int c;
  26.          while ((c = getchar ()) != '\n' && c != EOF)
  27.          {
  28.          }
  29.       }
  30.    }
  31. }
  32. static int point(struct point *m, int l)
  33. {
  34.    int i;
  35.    for (i = 0;i < l;i++)
  36.    {
  37.       printf("Entrez la position: " );
  38.       scanf("%d", &m[i].position);
  39.       if (m[i].position < 999)
  40.          printf("ok" );
  41.       else
  42.          printf("erreur" );
  43.    }
  44.    getch();
  45. }
  46. static void saisie(struct nom *p, int l)
  47. {
  48.    int i;
  49.    struct point bat[2];
  50.    for (i = 0;i < l;i++)
  51.    {
  52.       printf("Entrez le nom: " );
  53.       get_s(p[i].nom, sizeof p[i].nom);
  54.       printf("Entrez le prenom: " );
  55.       get_s(p[i].prenom, sizeof p[i].prenom);
  56.    }
  57.    point(bat, 2);
  58. }
  59. int main(void)
  60. {
  61.    struct nom tab[2];
  62.    saisie(tab, 2);
  63.    return 0;
  64. }


Message édité par Emmanuel Delahaye le 24-08-2006 à 13:52:48

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 24-08-2006 à 13:46:39    

Moi je veux bien! mais si quelqu'un pouvait me donner une solution, ca serait bien! merci

Reply

Marsh Posté le 24-08-2006 à 13:59:16    

ah parce que tu trouves qu'on ne te l'a pas donnée ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-08-2006 à 14:00:34    

[:collector]

Reply

Marsh Posté le 24-08-2006 à 14:44:38    

Je tiens a signaler que je suis DEBUTANT en langage c et donc que je n'ai que les bases! merci a Emmanuel D elahaye pour le code

Reply

Marsh Posté le 24-08-2006 à 14:46:25    

oui, et Emmanuel t'a dit de poser des questions si tu ne comprenais pas


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-08-2006 à 14:47:29    

Ben dans ce cas-là, regarde le code d'Emmanuel, compare avec le livre ou le tutorial C que tu as bien sûr sous le coude pour ton apprentissage, et pose les questions sur ce que tu ne comprends pas.
 
Pour t'aider, il faut bien qu'on ait des questions...

Reply

Marsh Posté le 24-08-2006 à 14:51:36    

Oui mais le code de Emmanuel a résolu mon probléme...donc je n'ai pas de question :)  Merci beaucoup

Reply

Marsh Posté le 24-08-2006 à 14:54:22    

super... et si le prof te demande d'expliquer, tu fais quoi ? [:kiki]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-08-2006 à 14:55:27    

kiooik a écrit :

Oui mais le code de Emmanuel a résolu mon probléme...donc je n'ai pas de question :)  Merci beaucoup


 
Je suis sûr que tu sais ce que signifie, par exemple, le mot-clef "static" que Emmanuel a placé au début de chacune de ses fonctions.  [:petrus75]

Reply

Marsh Posté le 24-08-2006 à 15:11:10    

nan mais je me suis pas contenté de prendre le code qu'il a donné ! et c'est vrai qui ya qlq truc que je ne sais pas mais ca m'a permit de comprendre l'erreur que j'ai fait!

Reply

Marsh Posté le 24-08-2006 à 15:13:06    

kiooik a écrit :

nan mais je me suis pas contenté de prendre le code qu'il a donné ! et c'est vrai qui ya qlq truc que je ne sais pas mais ca m'a permit de comprendre l'erreur que j'ai fait!


tu aimes prendre un code sans en comprendre la totalité du fonctionnement ? [:petrus dei]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-08-2006 à 19:49:35    

Harkonnen a écrit :

Code :
  1. if (10000-valeur > 0)
  2. // la valeur est inférieure à 10000, donc est constituée de 4 chiffres



 
Euh... cela ne serait-il pas équivalent (mais en moins rapide) à

Code :
  1. if (valeur < 10000)

[:ddr555]


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 24-08-2006 à 20:00:22    

Sve@r a écrit :

Euh... cela ne serait-il pas équivalent (mais en moins rapide) à

Code :
  1. if (valeur < 10000)

[:ddr555]


 
 

Code :
  1. if (valeur < 10000 == true )

 [:wlitw]
 
[:chrisbk]

Message cité 2 fois
Message édité par farib le 24-08-2006 à 20:00:47

---------------
Bitcoin, Magical Thinking, and Political Ideology
Reply

Marsh Posté le 24-08-2006 à 20:10:04    

farib a écrit :

Code :
  1. if (valeur < 10000 == true )

 [:wlitw]
 
[:chrisbk]


 
 

Code :
  1. if ( valeur < 10000 != FileNotFound )


 [:aloy]

Reply

Marsh Posté le 24-08-2006 à 20:58:43    

Sve@r a écrit :

Euh... cela ne serait-il pas équivalent (mais en moins rapide) à

Code :
  1. if (valeur < 10000)

[:ddr555]


 

farib a écrit :

Code :
  1. if (valeur < 10000 == true )

 [:wlitw]
 
[:chrisbk]


 

Elmoricq a écrit :

Code :
  1. if ( valeur < 10000 != FileNotFound )


 [:aloy]


 
 [:natas]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-08-2006 à 21:00:23    

harko, ou l'art de faire compliqué quand on peut faire simple [:mlc]
et si je vous disais qu'au début j'étais parti sur ce truc :

Code :
  1. if (valeur%10000 == 0)
  2. // valeur entre 0 et 9999


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-08-2006 à 22:03:53    

Harkonnen a écrit :

harko, ou l'art de faire compliqué quand on peut faire simple [:mlc]
et si je vous disais qu'au début j'étais parti sur ce truc :

Code :
  1. if (valeur%10000 == 0)
  2. // valeur entre 0 et 9999



 
On se doute bien que pour passer autant de temps à être modo, tu peux pas être un véritable programmeur [:petrus75]


---------------
Bitcoin, Magical Thinking, and Political Ideology
Reply

Marsh Posté le 24-08-2006 à 22:10:12    

farib a écrit :

On se doute bien que pour passer autant de temps à être modo, tu peux pas être un véritable programmeur [:petrus75]


 [:natas]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 25-08-2006 à 15:24:37    

farib a écrit :

On se doute bien que pour passer autant de temps à être modo, tu peux pas être un véritable programmeur [:petrus75]


[:rofl]

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed