Afficher les opération et les resultats dans un tableau
mast20
Messages postés
14
Statut
Membre
-
mast20 Messages postés 14 Statut Membre -
mast20 Messages postés 14 Statut Membre -
svp est ce que quelqu'un peut m'aider à modifier ce programme pour qu il soit afficher dans un tableau.voici le programme :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 50
#define M 3
void afficher_etat_vars(char opt[N],int*p1,int*p2,int*pta,int*ptb,int*ptc)
{
char ch1[M],ch2[M];
if(p1==pta)
strcpy(ch1,"&a");
else if(p1==ptb)
strcpy(ch1,"&b");
else if(p1==ptc)
strcpy(ch1,"&c");
else
strcpy(ch1,"");
if(p2==pta)
strcpy(ch2,"&a");
else if(p2==ptb)
strcpy(ch2,"&b");
else if(p2==ptc)
strcpy(ch2,"&c");
else
strcpy(ch2,"");
printf("%10s| %3d | %3d | %3d | %s | %s \n",opt,*ptb,*pta,*ptc,ch1,ch2) ;
}
int main( )
{
printf("operation | a | b | c | p1 | p2 \n");
int a=1;
int b=2;
int c=3;
int*p1=NULL,*p2=NULL;
p1=&a;
afficher_etat_vars("p1=&a",p1,p2,&a,&b,&c);
p2=&c;
afficher_etat_vars("p2=&c",p1,p2,&a,&b,&c);
afficher_etat_vars("*p1=*p2" ,p1,p2,&a,&b,&c);
(*p2)++;
afficher_etat_vars("(*p2)++",p1,p2,&a,&b,&c);
p1=p2;
afficher_etat_vars("p1=p2",p1,p2,&a,&b,&c);
p2=&b;
afficher_etat_vars("p2=&b",p1,p2,&a,&b,&c);
afficher_etat_vars("*p1=*p2",p1,p2,&a,&b,&c);
++(*p2);
afficher_etat_vars("++(*p2)",p1,p2,&a,&b,&c);
afficher_etat_vars("*p1*=*p2",p1,p2,&a,&b,&c);
++(*p2);
afficher_etat_vars("++(*p2)",p1,p2,&a,&b,&c);
a=*p2**p1;
afficher_etat_vars("a=*p2**p1",p1,p2,&a,&b,&c);
p1=&a;
afficher_etat_vars("p1=&a",p1,p2,&a,&b,&c);
afficher_etat_vars("*p2=*p1/=*p2",p1,p2,&a,&b,&c);
return (0);
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 50
#define M 3
void afficher_etat_vars(char opt[N],int*p1,int*p2,int*pta,int*ptb,int*ptc)
{
char ch1[M],ch2[M];
if(p1==pta)
strcpy(ch1,"&a");
else if(p1==ptb)
strcpy(ch1,"&b");
else if(p1==ptc)
strcpy(ch1,"&c");
else
strcpy(ch1,"");
if(p2==pta)
strcpy(ch2,"&a");
else if(p2==ptb)
strcpy(ch2,"&b");
else if(p2==ptc)
strcpy(ch2,"&c");
else
strcpy(ch2,"");
printf("%10s| %3d | %3d | %3d | %s | %s \n",opt,*ptb,*pta,*ptc,ch1,ch2) ;
}
int main( )
{
printf("operation | a | b | c | p1 | p2 \n");
int a=1;
int b=2;
int c=3;
int*p1=NULL,*p2=NULL;
p1=&a;
afficher_etat_vars("p1=&a",p1,p2,&a,&b,&c);
p2=&c;
afficher_etat_vars("p2=&c",p1,p2,&a,&b,&c);
- p1=*p2;
afficher_etat_vars("*p1=*p2" ,p1,p2,&a,&b,&c);
(*p2)++;
afficher_etat_vars("(*p2)++",p1,p2,&a,&b,&c);
p1=p2;
afficher_etat_vars("p1=p2",p1,p2,&a,&b,&c);
p2=&b;
afficher_etat_vars("p2=&b",p1,p2,&a,&b,&c);
- p1=*p2;
afficher_etat_vars("*p1=*p2",p1,p2,&a,&b,&c);
++(*p2);
afficher_etat_vars("++(*p2)",p1,p2,&a,&b,&c);
- p1*=*p2;
afficher_etat_vars("*p1*=*p2",p1,p2,&a,&b,&c);
++(*p2);
afficher_etat_vars("++(*p2)",p1,p2,&a,&b,&c);
a=*p2**p1;
afficher_etat_vars("a=*p2**p1",p1,p2,&a,&b,&c);
p1=&a;
afficher_etat_vars("p1=&a",p1,p2,&a,&b,&c);
- p2=*p1/=*p2;
afficher_etat_vars("*p2=*p1/=*p2",p1,p2,&a,&b,&c);
return (0);
}
A voir également:
- Afficher un tableau en c
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Imprimer un tableau excel - Guide
- Tableau croisé dynamique - Guide
1 réponse
Bonjour,
Tu souhaites faire des opérations et les afficher sous forme d'un tableau.
Ton code n'est pas mal, mais tu finis par tout mélanger à l'affichage.
Je te propose le code suivant (je suis fainéant comme tout informaticien et j'ai utilisé des macros et des boucles), j'ai ôté les codes qui n'ont pas de sens.
Tu souhaites faire des opérations et les afficher sous forme d'un tableau.
Ton code n'est pas mal, mais tu finis par tout mélanger à l'affichage.
Je te propose le code suivant (je suis fainéant comme tout informaticien et j'ai utilisé des macros et des boucles), j'ai ôté les codes qui n'ont pas de sens.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 50
#define M 3
void afficher_etat_vars(char opt[N] , int*p1 , int*p2 , int*pta , int*ptb , int*ptc) {
const char* c[2]; // ou pointent p1 p2
int* ps[2]; // p1 et p2 dans un tableau
ps[0] = p1;
ps[1] = p2;
for ( int i = 0 ; i < 2 ; ++i ) {
if ( ps[i] == NULL ) c[i] = "NULL";
else if ( ps[i] == pta ) c[i] = " &a ";
else if ( ps[i] == ptb ) c[i] = " &b ";
else if ( ps[i] == ptc ) c[i] = " &c ";
else c[i] = "autre";
}
printf("%-12s| %3d | %3d | %3d | %s | %s |\n" , opt , *pta , *ptb , *ptc , c[0] , c[1] );
}
#define FaireEtAfficher(exp) exp; afficher_etat_vars( #exp , p1 , p2 , &a , &b , &c );
int main() {
printf("operation | a | b | c | p1 | p2 |\n");
int a = 1;
int b = 2;
int c = 3;
int*p1 = NULL , *p2 = NULL;
FaireEtAfficher(p1 = &a);
FaireEtAfficher(p2 = &c);
////p1 = *p2;
FaireEtAfficher(*p1=*p2);
FaireEtAfficher(( *p2 )++);
FaireEtAfficher(p1 = p2);
FaireEtAfficher(p2 = &b);
////p1 = *p2;
FaireEtAfficher(++( *p2 ));
////p1 *= *p2;
FaireEtAfficher(++( *p2 ));
FaireEtAfficher(a = *p2**p1);
FaireEtAfficher(p1=&a);
////p2 = *p1 /= *p2;
return 0;
}
mast20
Messages postés
14
Statut
Membre
merci pour l aide