slt je sui au niveau du jeux plus ou moins et je voudrait l ameliorer avec un multi joueur.genre un entre un nombre l autre devine et pour cela il me fau cacher le nombre entrer par le premier joueur
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define ab 100
typedef struct
{
char nom[50];
char pre[50];
char num[50];
}op;
main()
{
op ope;
char num[20];
int io=5,it=5,ie=5,mat[3][ab]={{772314440,782314440,774517070,784517070,778868181},
{762314440,764517070,763570521,765181304,768868181},
702314440,704517070,703570521,705181304,708868181};
int je,ic=5,conti,tabcredit[3][ab]={{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0}},choix,numec,ok,ind1,i,ok2,s1,s2,sauv,ind2,mnt,ok3;
float da,flo;
do
{
ok3=0;
ok2=0;
ok=0;
je=0;
conti=1;
puts("==============================MENU========================\n");
puts("\n1-> CREER UN NOUVEAU ABONNE");
puts("2-> EMETTRE UN APPEL");
puts("3-> VERIFIER LE MONTANT DE VOTRE COMPTE");
puts("4-> CHARGER VOTRE COMPTE");
puts("5-> QUITTER");
printf("\nvotre choix:\t");
do
{
scanf("%d",&choix);
if(choix!=1 && choix!=2 && choix!=3 && choix!=4 && choix!=5)
printf("Choix incorrect:\t");
}
while(choix!=1 && choix!=2 && choix!=3 && choix!=4 && choix!=5);
switch(choix)
{
case 1:
system("cls");
printf("entrer le numero:\t");
do
{
scanf("%s",&ope.num);
s1=atoi(ope.num);
switch(ope.num[0])
{
case '7':
switch(ope.num[1])
{
case '7':
ok=1;
break;
case '8':
ok=1;
break;
case '0':
ok=1;
break;
case '6':
ok=1;
break;
}
break;
}
if(strlen(ope.num)!=9 && ok==1 )
printf("le numero doit comporter 9 chiffres:\t");
if(ok==0 && strlen(ope.num)==9)
printf("le numero doit commencer par 77,78,76 ou 70:\t");
if(strlen(ope.num)!=9 && ok==0)
printf("le numero doit comporter 9 chiffres et doit commencer par 77,78,76 ou 70:\t");
}
while(ok==0 || strlen(ope.num)!=9);
ind1=s1/10000000;
if(ind1==77 || ind1==78)
{
for(i=0;i<=io;i++)
{
if(mat[0][i]==s1)
{
ok2=1;
sauv=i;
i=io;
}
}
if(ok2==0)
{
printf("entrer le nom de l abonne:\t");
scanf("%s",&ope.nom);
printf("entrer le prenom de l abonne:\t");
scanf("%s",&ope.pre);
printf("\nNouveau abonne cree\n");
io++;
mat[0][io]=s1;
ic++;
tabcredit[0][ic]=0;
}
else
printf("Le numero est deja ete enregistre\n");
}
if(ind1==76)
{
for(i=0;i<=it;i++)
{
if(mat[1][i]==s1)
{
ok2=1;
sauv=i;
i=it;
}
}
if(ok2==0)
{
printf("entrer le nom de l abonne:\t");
scanf("%s",&ope.nom);
printf("entrer le prenom de l abonne:\t");
scanf("%s",&ope.pre);
printf("\nNouveau abonne cree\n");
it++;
mat[1][it]=s1;
ic++;
tabcredit[1][ic]=0;
}
else
printf("Le numero est deja ete enregistre");
}
if(ind1==70)
{
for(i=0;i<=ie;i++)
{
if(mat[2][i]==s1)
{
ok2=1;
sauv=i;
i=ie;
}
}
if(ok2==0)
{
printf("entrer le nom de l abonne:\t");
scanf("%s",&ope.nom);
printf("entrer le prenom de l abonne:\t");
scanf("%s",&ope.pre);
printf("\nNouveau abonne cree\n");
ie++;
mat[2][ie]=s1;
ic++;
tabcredit[2][ic]=0;
}
else
printf("Le numero est deja ete enregistre\n");
}
system("pause");
system("cls");
break;
case 2:
ok2=0;
system("cls");
printf("entrer le numero:\t");
do
{
scanf("%s",&ope.num);
s1=atoi(ope.num);
switch(ope.num[0])
{
case '7':
switch(ope.num[1])
{
case '7':
ok=1;
break;
case '8':
ok=1;
break;
case '0':
ok=1;
break;
case '6':
ok=1;
break;
}
}
if(strlen(ope.num)!=9 && ok==1)
printf("\nle numero doit comporter 9 chiffres:\t");
if(ok==0 && strlen(ope.num)==9)
printf("\nle numero doit commencer par 77,78,76 ou 70:\t");
if(strlen(ope.num)!=9 && ok==0)
printf("\nle numero doit etre 9 chiffres et doit commencer par 77,78,76 ou 70:\t");
}
while(ok==0 || strlen(ope.num)!=9);
ind1=s1/10000000;
if(ind1==77 || ind1==78)
{
for(i=0;i<=io;i++)
{
if(mat[0][i]==s1)
{
ok2=1;
sauv=i;
i=io;
}
}
if(ok2==0)
printf("Le numero n existe pas");
else
{
if(tabcredit[0][sauv]>60)
{
ok2=0;
printf("Entrer celui de votre correspondant:\t");
do
{
scanf("%s",&ope.num);
s2=atoi(ope.num);
switch(ope.num[0])
{
case '7':
switch(ope.num[1])
{
case '7':
ok=1;
break;
case '8':
ok=1;
break;
case '0':
ok=1;
break;
case '6':
ok=1;
break;
}
}
if(strlen(ope.num)!=9)
printf("le numero doit comporter 9 chiffres:\t");
if(ok==0)
printf("le numero doit commencer par 77,78,76 ou 70:\t");
if(strlen(ope.num)!=9 && ok==0)
printf("le numero doit comporter 9 chiffres et doit commencer par 77,78,76 ou 70:\t");
}
while(ok==0 || strlen(ope.num)!=9);
ind2=s2/10000000;
if(s1==s2)
ok3=1;
if(ind2==77 || ind2==78)
{
for(i=0;i<=io;i++)
{
if(mat[0][i]==s2)
{
ok2=1;
i=io;
}
}
if(ok2==0)
printf("Le numero n existe pas");
}
if(ind2==76)
{
for(i=0;i<=it;i++)
{
if(mat[1][i]==s2)
{
ok2=1;
i=it;
}
}
if(ok2==0)
{
printf("Le numero n existe pas");
}
}
if(ind2==70)
{
for(i=0;i<=ie;i++)
{
if(mat[2][i]==s2)
{
ok2=1;
i=ie;
}
}
if(ok2==0)
printf("Le numero n existe pas");
}
if(ok2==1 && ok3==0)
{
if(ind1==ind2)
{
system("cls");
printf("Votre appel peut durer %f s",(float)tabcredit[0][sauv]/25);
flo=(float)tabcredit[0][sauv]/25;
printf("\nEntrer la duree:\t");
do
{
scanf("%f",&da);
if(da<0)
printf("la duree ne doit pas etre negatif:\t");
if(da>flo)
printf("la duree doit < ou = a %f:\t",(float)tabcredit[0][sauv]/25);
}
while(da<0 || da>flo);
printf("\nVotre numero est:%d",s1);
printf("\nCelui de votre correspondant est %d",s2);
printf("\nCout de l appel %f Fcfa",da*25);
printf("\nil vous reste %f Fcfa",tabcredit[0][sauv]-(da*25));
tabcredit[0][sauv]=tabcredit[0][sauv]-(da*25);
}
if(ind1==77 || ind1==78 && ind2==76 || ind2==70)
{
printf("%d",ind2);
printf("\nVotre appel peut durer %fs",(float)tabcredit[0][sauv]/50);
flo=(float)tabcredit[0][sauv]/50;
printf("\nEntrer la duree:\t");
do
{
scanf("%f",&da);
if(da<0)
printf("la duree ne doit pas etre negatif:\t");
if(da>flo)
printf("la duree doit < ou = a %f:\t",(float)tabcredit[0][sauv]/50);
}
while(da<0 || da>flo);
printf("\nVotre numero est:%d",s1);
printf("\nCelui de votre correspondant est %d",s2);
printf("\nCout de l appel %f Fcfa",da*50);
printf("\nil vous reste %f Fcfa",tabcredit[0][sauv]-(da*50));
tabcredit[0][sauv]=tabcredit[0][sauv]-(da*50);
}
}
if(ok3==1)
{
system("cls");
printf("\nAppel impossible");
}
}
else
{
if(ok2==1)
printf("\nVotre credit est insuffisant");
}
}
}
if(ind1==76)
{
for(i=0;i<=it;i++)
{
if(mat[1][i]==s1)
{
ok2=1;
sauv=i;
i=it;
}
}
if(ok2==0)
printf("Le numero n existe pas");
else
{
if(tabcredit[1][sauv]>60)
{
ok2=0;
printf("Entrer celui de votre correspondant:\t");
do
{
scanf("%s",&ope.num);
s2=atoi(ope.num);
switch(ope.num[0])
{
case '7':
switch(ope.num[1])
{
case '7':
ok=1;
break;
case '8':
ok=1;
break;
case '0':
ok=1;
break;
case '6':
ok=1;
break;
}
}
if(strlen(ope.num)!=9)
printf("le numero doit comporter 9 chiffres:\t");
if(ok==0)
printf("le numero doit commencer par 77,78,76 ou 70:\t");
if(strlen(ope.num)!=9 && ok==0)
printf("le numero doit comporter 9 chiffres et doit commencer par 77,78,76 ou 70:\t");
}
while(ok==0 || strlen(ope.num)!=9);
ind2=s2/10000000;
if(s1==s2)
ok3=1;
if(ind2==77 || ind2==78)
{
for(i=0;i<=io;i++)
{
if(mat[0][i]==s2)
{
ok2=1;
i=io;
}
}
if(ok2==0)
printf("Le numero n existe pas");
}
if(ind2==76)
{
for(i=0;i<=it;i++)
{
if(mat[1][i]==s2)
{
ok2=1;
i=it;
}
}
if(ok2==0)
{
printf("Le numero n existe pas");
}
}
if(ind2==70)
{
for(i=0;i<=ie;i++)
{
if(mat[2][i]==s2)
{
ok2=1;
i=ie;
}
}
if(ok2==0)
printf("Le numero n existe pas");
}
if(ok2==1 && ok3!=1)
{
if(ind1==ind2)
{
system("cls");
printf("Votre appel peut durer %fs",(float)tabcredit[1][sauv]/25);
flo=(float)tabcredit[1][sauv]/25;
printf("\nEntrer la duree:\t");
do
{
scanf("%f",&da);
if(da<0)
printf("la duree ne doit pas etre negatif:\t");
if(da>flo)
printf("la duree doit < ou = a %f:\t",(float)tabcredit[1][sauv]/25);
}
while(da<0 || da>flo);
printf("\nVotre numero est:%d",s1);
printf("\nCelui de votre correspondant est %d",s2);
printf("\nCout de l appel %f Fcfa",da*25);
printf("\nil vous reste %f Fcfa",tabcredit[1][sauv]-(da*25));
tabcredit[0][sauv]=tabcredit[0][sauv]-(da*25);
}
if(ind1==76 && ind2==77 || ind2==70 || ind2==78)
{
printf("\nVotre appel peut durer %fs",(float)tabcredit[1][sauv]/40);
flo=(float)tabcredit[1][sauv]/40;
printf("\nEntrer la duree:\t");
do
{
scanf("%f",&da);
if(da<0)
printf("la duree ne doit pas etre negatif:\t");
if(da>flo)
printf("la duree doit <= a %f:\t",(float)tabcredit[1][sauv]/40);
}
while(da<0 || da>flo);
printf("\nVotre numero est:%d",s1);
printf("\nCelui de votre correspondant est %d",s2);
printf("\nCout de l appel %f Fcfa",da*50);
printf("\nil vous reste %f Fcfa",tabcredit[1][sauv]-(da*40));
tabcredit[0][sauv]=tabcredit[0][sauv]-(da*40);
}
}
if(ok3==1)
{
system("cls");
printf("\nAppel impossible");
}
}
else
printf("\nVotre credit est insuffisant");
}
}
if(ind1==70)
{
for(i=0;i<=ie;i++)
{
if(mat[2][i]==s1)
{
ok2=1;
sauv=i;
i=ie;
}
}
if(ok2==0)
printf("Le numero n existe pas");
else
{
if(tabcredit[2][sauv]>60)
{
ok2=0;
printf("Entrer celui de votre correspondant:\t");
do
{
scanf("%s",&ope.num);
s2=atoi(ope.num);
switch(ope.num[0])
{
case '7':
switch(ope.num[1])
{
case '7':
ok=1;
break;
case '8':
ok=1;
break;
case '0':
ok=1;
break;
case '6':
ok=1;
break;
}
}
if(strlen(ope.num)!=9)
printf("le numero doit comporter 9 chiffres:\t");
if(ok==0)
printf("le numero doit commencer par 77,78,76 ou 70:\t");
if(strlen(ope.num)!=9 && ok==0)
printf("le numero doit comporter 9 chiffres et doit commencer par 77,78,76 ou 70:\t");
}
while(ok==0 || strlen(ope.num)!=9);
ind2=s2/10000000;
if(s1==s2)
ok3=1;
if(ind2==77 || ind2==78)
{
for(i=0;i<=io;i++)
{
if(mat[0][i]==s2)
{
ok2=1;
i=io;
}
}
if(ok2==0)
printf("Le numero n existe pas");
}
if(ind2==76)
{
for(i=0;i<=it;i++)
{
if(mat[1][i]==s2)
{
ok2=1;
i=it;
}
}
if(ok2==0)
{
printf("Le numero n existe pas");
}
}
if(ind2==70)
{
for(i=0;i<=ie;i++)
{
if(mat[2][i]==s2)
{
ok2=1;
i=ie;
}
}
if(ok2==0)
printf("Le numero n existe pas");
}
if(ok2==1 && ok3!=1)
{
if(ind1==ind2)
{
system("cls");
printf("Votre appel peut durer %fs",(float)tabcredit[2][sauv]/25);
flo=(float)tabcredit[2][sauv]/60;
printf("\nEntrer la duree:\t");
do
{
scanf("%f",&da);
if(da<0)
printf("la duree ne doit pas etre negatif:\t");
if(da>flo)
printf("la duree doit < ou = a %f:\t",(float)tabcredit[2][sauv]/25);
}
while(da<0 || da>flo);
printf("\nVotre numero est:%d",s1);
printf("\nCelui de votre correspondant est %d",s2);
printf("\nCout de l appel %f Fcfa",da*60);
printf("\nil vous reste %f Fcfa",tabcredit[2][sauv]-(da*25));
tabcredit[0][sauv]=tabcredit[0][sauv]-(da*60);
}
if(ind1==70 && ind2==77 || ind2==76 || ind2==78)
{
system("cls");
printf("\nVotre appel peut durer %fs",(float)tabcredit[2][sauv]/60);
flo=(float)tabcredit[2][sauv]/60;
printf("\nEntrer la duree:\t");
do
{
scanf("%f",&da);
if(da<0)
printf("la duree ne doit pas etre negatif:\t");
if(da>flo)
printf("la duree doit < ou = a %f:\t",(float)tabcredit[2][sauv]/65);
}
while(da<0 || da>flo);
printf("\nVotre numero est:%d",s1);
printf("\nCelui de votre correspondant est %d",s2);
printf("\nCout de l appel %f Fcfa",da*50);
printf("\nil vous reste %f Fcfa",tabcredit[2][sauv]-(da*60));
tabcredit[0][sauv]=tabcredit[0][sauv]-(da*60);
}
}
if(ok3==1)
{
system("cls");
printf("\nAppel impossible");
}
}
else
printf("\nVotre credit est insuffisant");
if(ok3==1)
{
system("cls");
printf("\nAppel impossible");
}
}
}
printf("\n");
system("pause");
system("cls");
break;
case 3:
system("cls");
printf("entrer le numero:\t");
do
{
scanf("%s",&ope.num);
s1=atoi(ope.num);
switch(ope.num[0])
{
case '7':
switch(ope.num[1])
{
case '7':
ok=1;
break;
case '8':
ok=1;
break;
case '0':
ok=1;
break;
case '6':
ok=1;
break;
}
}
if(strlen(ope.num)!=9 && ok==1)
printf("le numero doit comporter 9 chiffres:\t");
if(ok==0 && strlen(ope.num)==9)
printf("le numero doit commencer par 77,78,76 ou 70:\t");
if(strlen(ope.num)!=9 && ok==0)
printf("le numero doit comporter 9 chiffres et doit commencer par 77,78,76 ou 70:\t");
}
while(ok==0 || strlen(ope.num)!=9);
ind1=s1/10000000;
if(ind1==77 || ind1==78)
{
for(i=0;i<=io;i++)
{
if(mat[0][i]==s1)
{
ok2=1;
sauv=i;
i=io;
}
}
if(ok2==0)
printf("Le numero n existe pas\n");
else
printf("le montant de votre compte est:\t%d Fcfa\n",tabcredit[0][sauv]);
}
if(ind1==76)
{
for(i=0;i<=it;i++)
{
if(mat[1][i]==s1)
{
ok2=1;
sauv=i;
i=it;
}
}
if(ok2==0)
{
printf("Le numero n existe pas\n");
}
else
{
printf("le montant de votre compte est:\t%d Fcfa\n",tabcredit[1][sauv]);
}
}
if(ind1==70)
{
for(i=0;i<=ie;i++)
{
if(mat[2][i]==s1)
{
ok2=1;
sauv=i;
i=ie;
}
}
if(ok2==0)
{
printf("Le numero n existe pas\n");
}
else
printf("le montant de votre compte est:\t%d Fcfa\n",tabcredit[2][sauv]);
}
system("pause");
system("cls");
break;
case 4:
system("cls");
printf("entrer le numero:\t");
do
{
ok=0;
scanf("%s",&ope.num);
s1=atoi(ope.num);
switch(ope.num[0])
{
case '7':
switch(ope.num[1])
{
case '7':
ok=1;
break;
case '8':
ok=1;
break;
case '0':
ok=1;
break;
case '6':
ok=1;
break;
}
}
if(strlen(ope.num)!=9 && ok==1)
printf("\nle numero doit comporter 9 chiffres:\t");
if(ok==0 && strlen(ope.num)==9)
printf("\nle numero doit commencer par 77,78,76 ou 70:\t");
if(strlen(ope.num)!=9 && ok==0)
printf("\nle numero doit etre 9 chiffres et doit commencer par 77,78,76 ou 70:\t");
}
while(ok==0 || strlen(ope.num)!=9);
ind1=s1/10000000;
if(ind1==77 || ind1==78)
{
for(i=0;i<=io;i++)
{
if(mat[0][i]==s1)
{
ok2=1;
sauv=i;
i=io;
}
}
fflush(stdin);
if(ok2==0)
printf("Le numero n existe pas\n");
else
{
printf("Entrer le montant:\t");
scanf("%d",&mnt);
tabcredit[0][sauv]=mnt;
}
}
if(ind1==76)
{
for(i=0;i<=it;i++)
{
if(mat[1][i]==s1)
{
ok2=1;
sauv=i;
i=it;
}
}
if(ok2==0)
{
printf("Le numero n existe pas\n");
}
else
{
printf("Entrer le montant:\t");
scanf("%d",&mnt);
tabcredit[1][sauv]=mnt;
}
}
if(ind1==70)
{
for(i=0;i<=ie;i++)
{
if(mat[2][i]==s1)
{
ok2=1;
sauv=i;
i=ie;
}
}
if(ok2==0)
{
printf("Le numero n existe pas\n");
}
else
{
printf("Entrer le montant:\t");
scanf("%d",&mnt);
tabcredit[2][sauv]=mnt;
}
}
system("pause");
system("cls");
break;
case 5:
system("cls");
printf("AU REVOIR");
je=1;
break;
}
}
while(conti==1 && je==0);
getch();
}
slt a tous !! j'ai besoin d'aide pour un exercice concernant un programme qui affiche la date du lendemain connaissant la date du jour ? et tout en tenant compte des années bissextiles et non bissextiles merci d'avance ??
bonjour je sait que mon message n'a rien a voir avec ce que vous faites et je vous prie de m'en excuser mais je souhaiterai commencer a apprendre la programmation sachant que je n'ai aucune connaissance sur le sujet j'aimerais avoir votre avis pour savoir par ou commencer merci
Pour une N-ième fois, ceci est un topique sur un exercice en particulier. Là c'est hors sujet, crée ton propre topique. C'est quand même pas compliqué, ça doit faire la 5e fois que le répète (et je suis pas le seul).
Voilà j'ai besoin d'aide, je n'arrive pas à faire ce programme et j'en ai vraiment besoin, merci d'avance pour votre aide.
Voilà l'énoncé :
Soit L une liste d'étudiants. Chaque étudiant est défini par son matricule (entier), son nom et prénom (chaine) et sa filière ('ACAD','GTR', ou 'ISIL')
1) Donner la déclaration de cette liste
2)Ecrire une procédure "ECLATE" qui permet de déplacer et de créer deux listes L1 contenant les étudiants de la filière 'GTR' et L2 contenant les étudiant de la filière 'ISIL'. A la fin, la liste originale L contiendra que des étudiants de la filière 'ACAD' seulement.
Pour une N-ième fois, ceci est un topique sur un exercice en particulier. Là c'est hors sujet, crée ton propre topique. C'est quand même pas compliqué, ça doit faire la 5e fois que le répète (et je suis pas le seul).
Je crois qu'il va falloir contacter un modo pour fermer ce sujet.
@ChelckyDev, mais si tu vas y arriver ! Vas-y pas à pas, commence par faire vraiment le plus simple. Fais des petits bouts de codes tests ou ce genre de choses si tu te sens perdu-e.
Je crois qu'il va falloir contacter un modo pour fermer ce sujet.
@ChelckyDev, mais si tu vas y arriver ! Vas-y pas à pas, commence par faire vraiment le plus simple. Fais des petits bouts de codes tests ou ce genre de choses si tu te sens perdu-e.
C'est quelque chose qui aurait dû être fait depuis très longtemps ! Entre les ouin-ouin analphabètes et ceux qui s’évertuent à répéter l'évidence, je suis persuadé qu'avec un nettoyage en règles on gagnerait 1 à 2 pages !
Tu as une mauvaise utilisation de ton pointeur cellule/out. AU debut tu le declares en pointeur sur une chaine de caractere (statique) et ensuite tu utilises une chaine dynamique (malloc). De plus, tu ne fais pas de free a tous tes tours de boucle, du coup tu as des fuites memoire ! D'ailleurs, je ne vois pas pourquoi tu utilises une variable globale, elle est inutile.
Ton malloc n'alloue pas la bonne taille, il ne faut pas oublier un +1 pour mettre le \0 de ta chaine => malloc((size + 1) * sizeof (char))
Dans ta fonction genNext, je n'aime pas trop ton utilisation de ternaire, ca rend le code illisible. Il vaut mieux perdre quelques lignes pour avoir un code clair que de tenter de gagner quelques grains de sels avec un ternaire !
Sinon, je n'ai pas teste ton code ni regarde l'algo. Le prototype de main est int main(void) ou int main(int argc, char **argv)
Une comparaison retourne soit 1 en cas d’égalité ou 0 dans le cas contraire. Donc c'est bon, mais je trouve pas ça très joli dans ton code. Encore une fois, privilégie la lisibilité du code plutôt que la taille. Tu pourrais encore améliorer la lisibilité.
Est-ce que tu penses vraiment que sur ton ordinateur multi coeur cadencé a quelques Ghz avec je sais pas combien de Go de ram tu verras la différence ?
Et de toute manière, ton compilateur enlèvera surement la boucle au moment de l'optimisation.
UnDeadRoot~AshSnowLuv
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.