Probleme en langage c
chungech
-
Carri€ Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
Carri€ Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
jai pas compri poukoi la compilation plante en langage c
#include <stdio.h>
#include <stdlib.h>
int datevalide(int jour,int moi,int an){
int njmax;
if (an>0) {
if (moi<12){
switch (moi)
case 1:3:5:7:8:10:11:{njmax=31;break;}
case 4:6:9:12:{njmax=30;break;}
case 2:{
if (an%4==0) njmax=28;
else njmax=29;
break;
}
else return 0;}
else return 0}
if (jour<njmax) return 1;
else return 0;
}
void main(){
int jour, moi,ans;
do
{
printf("entrez jour moi ans");
sacnf("%d%d%d",&jour,&moi,&ans);
}
while (datevalide(jour,moi,ans)==1);
puts("votre date est valide elle est %d,%d,%d",jour,moi,ans);
system("pause");
}
jai pas compri poukoi la compilation plante en langage c
#include <stdio.h>
#include <stdlib.h>
int datevalide(int jour,int moi,int an){
int njmax;
if (an>0) {
if (moi<12){
switch (moi)
case 1:3:5:7:8:10:11:{njmax=31;break;}
case 4:6:9:12:{njmax=30;break;}
case 2:{
if (an%4==0) njmax=28;
else njmax=29;
break;
}
else return 0;}
else return 0}
if (jour<njmax) return 1;
else return 0;
}
void main(){
int jour, moi,ans;
do
{
printf("entrez jour moi ans");
sacnf("%d%d%d",&jour,&moi,&ans);
}
while (datevalide(jour,moi,ans)==1);
puts("votre date est valide elle est %d,%d,%d",jour,moi,ans);
system("pause");
}
A voir également:
- Probleme en langage c
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage visual basic - Télécharger - Langages
- Langage basic gratuit - Télécharger - Édition & Programmation
16 réponses
salut!
y'a un sacnf au lieu de scanf ( mais c'est peut être une erreur de frappe si il n'y a pas eu de copier/coller)
et je n'aurai pas mis de ";" après la parenthèse ")" du while. Mais donne nous le mesage d'erreur car c'est peut être encore autre chose.
Sinon j'en profite pour demander également autre chose à propos de la commande system(" ") que tu utilises. "pause", ca sert vraiment à faire une pause dans le programme? du genre un sleep?
y'a un sacnf au lieu de scanf ( mais c'est peut être une erreur de frappe si il n'y a pas eu de copier/coller)
et je n'aurai pas mis de ";" après la parenthèse ")" du while. Mais donne nous le mesage d'erreur car c'est peut être encore autre chose.
Sinon j'en profite pour demander également autre chose à propos de la commande system(" ") que tu utilises. "pause", ca sert vraiment à faire une pause dans le programme? du genre un sleep?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ok alors...case outside of switch.....j'ai pas mes programmes sous les yeux pour verifier la syntaxe exact mais c'est
switch (..)
{ case:1:.....;
case:2:....;
}
il te manques des {} qui étaient mal positionné case 1:3:5:7:8:10:11:{njmax=31;break;} devient case 1:3:5:7:8:10:11:njmax=31;break;
switch (..)
{ case:1:.....;
case:2:....;
}
il te manques des {} qui étaient mal positionné case 1:3:5:7:8:10:11:{njmax=31;break;} devient case 1:3:5:7:8:10:11:njmax=31;break;
merci
mais lors de l'execution le programme donne toujour une date fause maime si elle est vrai
#include <stdio.h>
#include <stdlib.h>
int datevalide(int jour,int moi,int an){
int njmax;
if (an>0) {
if (moi<=12){
switch (moi){
case 1,3,5,7,8,10,11:{njmax=31;break;}
case 4,6,9,12:{njmax=30;break;}
case 2:{
if (an%4==0) njmax=28;
else njmax=29;
break;
}
}
} else return 0;
}else return 0;
if (jour<njmax) return 1;
else return 0;
}
void main(){
int JOUR, MOI,ANS;
printf("entrez jour moi ans");
scanf("%d%d%d",&JOUR,&MOI,&ANS);
if (datevalide(JOUR,MOI,ANS)==0)puts("faux");
else puts("vrai");
system("pause");
}
mais lors de l'execution le programme donne toujour une date fause maime si elle est vrai
#include <stdio.h>
#include <stdlib.h>
int datevalide(int jour,int moi,int an){
int njmax;
if (an>0) {
if (moi<=12){
switch (moi){
case 1,3,5,7,8,10,11:{njmax=31;break;}
case 4,6,9,12:{njmax=30;break;}
case 2:{
if (an%4==0) njmax=28;
else njmax=29;
break;
}
}
} else return 0;
}else return 0;
if (jour<njmax) return 1;
else return 0;
}
void main(){
int JOUR, MOI,ANS;
printf("entrez jour moi ans");
scanf("%d%d%d",&JOUR,&MOI,&ANS);
if (datevalide(JOUR,MOI,ANS)==0)puts("faux");
else puts("vrai");
system("pause");
}
avant de partir tu voudrai pas me raconter pour le "system("pause"); ??? et n'oublie pas de marquer le problème comme résolu. ;o)
sinon, bonne nuitée!
sinon, bonne nuitée!
system("pause") c'est pour metre le programme en pause pour qu'on est le tps de voir ce qui se passe sinon le terminale s'ouvre et se ferme presque immediatement
merci
mais lors de l'execution le programme donne toujour une date fause maime si elle est vrai
je suis un etudiant a l'ecole superieur des sciences et techniques de tunis chaque semaine on fait un tp c'est le tp de cette semaine
une fonction qui permet de retourner 1 si date valide 0 si date invalide pour system("pause") cest notre prof qui nous a dit de l'etuliser
normalement il est un docteur en programation
#include <stdio.h>
#include <stdlib.h>
int datevalide(int jour,int moi,int an){
int njmax;
if (an>0) {
if (moi<=12){
switch (moi){
case 1,3,5,7,8,10,11:{njmax=31;break;}
case 4,6,9,12:{njmax=30;break;}
case 2:{
if (an%4==0) njmax=28;
else njmax=29;
break;
}
}
} else return 0;
}else return 0;
if (jour<njmax) return 1;
else return 0;
}
void main(){
int JOUR, MOI,ANS;
printf("entrez jour moi ans");
scanf("%d%d%d",&JOUR,&MOI,&ANS);
if (datevalide(JOUR,MOI,ANS)==0)puts("faux");
else puts("vrai");
system("pause");
}
mais lors de l'execution le programme donne toujour une date fause maime si elle est vrai
je suis un etudiant a l'ecole superieur des sciences et techniques de tunis chaque semaine on fait un tp c'est le tp de cette semaine
une fonction qui permet de retourner 1 si date valide 0 si date invalide pour system("pause") cest notre prof qui nous a dit de l'etuliser
normalement il est un docteur en programation
#include <stdio.h>
#include <stdlib.h>
int datevalide(int jour,int moi,int an){
int njmax;
if (an>0) {
if (moi<=12){
switch (moi){
case 1,3,5,7,8,10,11:{njmax=31;break;}
case 4,6,9,12:{njmax=30;break;}
case 2:{
if (an%4==0) njmax=28;
else njmax=29;
break;
}
}
} else return 0;
}else return 0;
if (jour<njmax) return 1;
else return 0;
}
void main(){
int JOUR, MOI,ANS;
printf("entrez jour moi ans");
scanf("%d%d%d",&JOUR,&MOI,&ANS);
if (datevalide(JOUR,MOI,ANS)==0)puts("faux");
else puts("vrai");
system("pause");
}
a ce moment là, y'aurai pas une commande pour annuler "pasue" et reprendre ?
....euh..je crois que je viens de dire une bétise. On ne peut pas reprendre puique le programme va rester en pause....c'est un peu tard pour moi.
En faite, je cherche à mettre un programme en "pause" avec tous ses processus fils et je ne sais pas trop comment je vais faire.....j'ouvrirai un nouveau message a l'occasion ou si t'as la réponse, on voit en privé car ce n'est pas le sujet original.
....euh..je crois que je viens de dire une bétise. On ne peut pas reprendre puique le programme va rester en pause....c'est un peu tard pour moi.
En faite, je cherche à mettre un programme en "pause" avec tous ses processus fils et je ne sais pas trop comment je vais faire.....j'ouvrirai un nouveau message a l'occasion ou si t'as la réponse, on voit en privé car ce n'est pas le sujet original.
ce ne serai pas une histoire de "&" à placer devant" jour" "mois" "ans"...à la déclaration ou l'apel de la fonction datevalide?
essaye ça sauf si tu tiens vraiment a ton switch ;)
#include <stdio.h> #include <stdlib.h> int datevalide(int jour,int moi,int an){ int njmax; if (an>0) { if (moi<=12){ if(moi== 1 || moi ==3) njmax=31; if(moi== 5 || moi ==7) njmax=31; if(moi == 8 || moi >= 10) njmax=31; if(moi == 4 || moi ==6 ) njmax=30; if(moi == 9 || moi ==12) njmax=30; if(moi==2){ if (an%4==0) njmax=28; else njmax=29;} } else return 0; } else return 0; if (jour<njmax) return 1; else return 0; } void main(){ int JOUR, MOI,ANS; printf("entrez jour moi ans :"); scanf("%d%d%d",&JOUR,&MOI,&ANS); if (datevalide(JOUR,MOI,ANS)==0)puts("faux"); else puts("vrai"); system("pause"); }