Programme console C
Bonjour, je m'entraîne depuis hier au site du zéro à faire des programmes, des petits car je veux apprendre le C.
Voici mon code et je vous expliquerais mon problème plus tard.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long age = 0;
printf ("quel age avez vous ? \n\n");
scanf ("%ld", &age);
if (age >=18)
{
printf ("vous etes majeur ! \n\n");
}
else if (age > 10)
{
printf ("vous ete mineur ! il ne te reste plus que 1 an\n\n");
}
else
{
printf (" c est dommage tu es beaucoup trop jeune ! ! ! \n\n");
}
system ("PAUSE");
return 0;
}
Mon problème est que je voudrais que quand par exemple la console s'ouvre :
j'entre le nombre 18 ===> il y a marquer " vous etes majeur"
j'entre le nombre 17 ===> il y a marquer "vous etes mineur ! il ne vous reste plus que 1 an"
j'entre le nombre 16====> il y a marquer"vous etes mineur ! il ne vous reste plus que 1 an"
Voila je voudrais faire en sorte par exemple si je met 16 ans il y a marquer il ne vous reste plus que 2 ans et chaque autre nombre que je taperais ce serait la même chose mais comment ?
--
dsl pour l'URL: http://rohcavamaintenant.free.fr/Jo/Petitions.html
et https://www.facebook.com/group.php?gid=21375831670 soyons avec les animaux
Voici mon code et je vous expliquerais mon problème plus tard.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long age = 0;
printf ("quel age avez vous ? \n\n");
scanf ("%ld", &age);
if (age >=18)
{
printf ("vous etes majeur ! \n\n");
}
else if (age > 10)
{
printf ("vous ete mineur ! il ne te reste plus que 1 an\n\n");
}
else
{
printf (" c est dommage tu es beaucoup trop jeune ! ! ! \n\n");
}
system ("PAUSE");
return 0;
}
Mon problème est que je voudrais que quand par exemple la console s'ouvre :
j'entre le nombre 18 ===> il y a marquer " vous etes majeur"
j'entre le nombre 17 ===> il y a marquer "vous etes mineur ! il ne vous reste plus que 1 an"
j'entre le nombre 16====> il y a marquer"vous etes mineur ! il ne vous reste plus que 1 an"
Voila je voudrais faire en sorte par exemple si je met 16 ans il y a marquer il ne vous reste plus que 2 ans et chaque autre nombre que je taperais ce serait la même chose mais comment ?
--
dsl pour l'URL: http://rohcavamaintenant.free.fr/Jo/Petitions.html
et https://www.facebook.com/group.php?gid=21375831670 soyons avec les animaux
Configuration: Windows Vista Firefox 3.0.10
43 réponses
Résumé de la discussion
En langage C, le problème est d'afficher, après saisie d'un âge avec scanf, si l'utilisateur est majeur ou mineur et, pour les mineurs, le nombre d'années restantes jusqu'à 18. La solution essentielle consiste à calculer N = 18 - âge et d'afficher 'vous etes majeur' si âge >= 18, sinon 'vous etes mineur ! il ne vous reste plus que N an(s)'. Il faut aussi assurer le bon format de saisie et l'affichage, par exemple en utilisant %i ou %ld et en ajoutant des retours à la ligne avec \n pour que le texte s'affiche correctement. D'autres proposent d'adapter la grammaire (an/ans) et d'envisager une extension facile pour d'autres seuils tout en évitant les messages redondants.
-
Contributeuroui, ton code est juste !
-
Bonjour, je débute également dans ce langage C.
Je souhaitais savoir si le code suivant est optimisé ou non car comme vous l'avez dit, mieux vaut prendre de bonnes habitudes dès le début.
merci de jeter un coup d'oeil et de me dire si ce code est propre ou non ?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char age=0, diff=0;
const char majorite = 18;
printf("Quel est ton age ? : ");
scanf("%ld", &age); // entrée clavier âge
diff = majorite - age;
if(diff > 0) // Si condition = 1 alors mineur
{
printf("tu es mineur, il te reste encore %ld avant d'etre majeur", diff);
}
else // si condition = 1 alors majeur
{
diff *= -1;
printf("tu es majeur depuis %ld ans", diff);
}
return 0; // fin du programme
} -
Contributeuret oui !
#include <stdio.h>
#include <stdlib.h>
long double (long nombreDebut)
{
return 2 * nombreDebut; // ce qui est dans les fonctions sont des copies des
} // variables, donc nombre tout seul est inconnu !
int main(int argc, char *argv[])
{
long nombreEntre = 0, nombreTriple = 0; // et il vaut combien nombreDebut ???
// il vaudrait mieux prendre un seul nombre de départ
printf("Entrez un nombre... "); // donc remplacer tous les nombreEntre par nombreDebut
scanf("%ld", &nombreEntre);
nombreEntre = double(nombreDebut);
printf("Le double de ce nombre est %ld\n", nombreTriple); //c'est bien nombreentre qui vaut le triple !
// nombreTriple vaut 0 pour l'instant !
system("PAUSE"); // affiche donc nombreEntre !
return 0;
}
-
une autre qustion en faite j'esaie de faire nu programme qui calcule le double d'un nombre mais code blocks me di qu'il y a une erreur a chaque fois voici mon code :
#include <stdio.h>
#include <stdlib.h>
long double (long nombreDebut)
{
return 2 * nombre;
}
int main(int argc, char *argv[])
{
long nombreEntre = 0, nombreTriple = 0;
printf("Entrez un nombre... ");
scanf("%ld", &nombreEntre);
nombreEntre = double(nombreDebut);
printf("Le double de ce nombre est %ld\n", nombreTriple);
system("PAUSE");
return 0;
}
-
#include <stdio.h>
main()
{
int age,r;
printf ("quel age avez vous ? \n");
scanf ("%d", &age);
if (age>=18)
printf ("vous etes majeur");
}
else if (age<18)
{
r=18-age
printf ("vous etes mineur !il ne te reste que",r);
}
else if (age <10)
{
r=10-age;
printf (" c' est dommage tu es beaucoup trop jeune ! ! il reste plus que ",r);
}
} -
ContributeurMais ne t'en fait pas si tu ne comprends pas tout ca, tu auras bien le temps de le comprendre plus tard...
-
merci mais pourquoi on ne met pas de & devant prénom et est ce que prenom est une variable ?
je ne comprend pas trop-
ContributeurLe but de l'esperluette (&) est d'obtenir l'adresse d'une variable. Or, dans le cas d'un tableau ou d'un pointeur, nous avons déjà l'adresse. Donc l'esperluette est inutile. De plus, les types ne correspondrait pas : char** au lieu de char*.
Pour tout ce qui est non tableau et non pointeur, l'esperluette est de mise.
Cdlt
-
-
Contributeurca tu l'apprendras plus tard, mais il faut faire :
char prenom [100];
scanf("%100s", prenom);
printf("Tu t'appelles %s, je le sais !", prenom);
normalement, c plus compliqué que ca, il faudrait vider le buffer, recuperer les lettres une a une avec fgets, tout ca, mais pour toi ca suffit amplement puisque tu débutes... -
mais sinon par exemple je met :
printf ("comment t'appelles tu ?\n");
scanf ????
je ne sais pas comment faire pour écrire des prenom ou des nom ? -
Contributeureh bien cherche un peu, je te donnerai la reponse si tu ne trouves vraiment pas...
Tu n'auras pas toujours la reponse a tes problemes ! -
-
ok voici mon code :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long nombreDeVie = 5;
printf ("vous avez %ld de vie\n", nombreDeVie);
printf ("attention\n");
nombreDeVie --;
printf ("ha desole tu viens de perdre %ld de vie\n", nombreDeVie);
system ("PAUSE");
return 0;
}
quand la console s'ouvre il y a marqué :
1/ vous avez 5 de vie
2/ attention
3/ ha desole tu viens de perdre 4 de vie
alors que mon programme par exemple je veux qu'il fasse AUTOMATIQUEMENT la soustraction de 1 en 1 genre j'ai 15 de vie je me fais touché et un toucher = moins 1 de vie alors je me retrouve à 14 et AINSI de suite... -
Contributeuralors en fait, il faut un point virgule, apres vies--;
our tes exemples, += 4 est un raccourci pour ecrire
ex ::
vie += 4; est equivalent à vie = vie + 4;
c plus rapide ! -
bon c'est pas grave mais j'ai un autre problème de malcomprehension:
par exemple ce code :
long nombre = 2;
nombre += 4; // nombre vaut 6...
nombre -= 3; // ... nombre vaut maintenant 3
nombre *= 5; // ... nombre vaut 15
nombre /= 3; // ... nombre vaut 5
nombre %= 3; // ... nombre vaut 2 (car 5 = 1 * 3 + 2)
Je ne comprend pas ces signe += , -= , pouquoi y a t-il un + ou un - devant = ?
faites un exemple svp -
donc si je réecris mon programme il faut que j'écrive :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv)
{
long nombreDeVie = 5;
printf("vous avez %ld de vie\n", nombreDeVie);
printf("attention");
nombreDeVie --
printf("ha desole tu vien de perdre %ld de vie\n", nombreDeVie);
system("PAUSE");
return 0;
}
mais il y a marquer qu'il y a une erreur de syntaxe avant printf à la ligne 11 là ou j'ai rajoutter les 2 --.
et aussi il me disent je croit de rajouter un char -
Contributeuril faut quelque chose de valable tout le temps... quelque chose qui vaut 1 de moins à chaque fois...
il faut que tu ecrives vies --;
ca s'appelle la décrémentation
il y a aussi l'incrementation, indispensable dans les boucles for ! -
et quand hier tu me disais il fallait faire 18 - age ...
là aussi alors je peux le faire si je veux faire ça :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long nombreDeVies = 5;
printf("Vous avez %ld vies\n", nombreDeVies);
printf("attention tu as été toucher\n");
nombreDeVies = 4;
printf("Ah desole, il ne vous reste plus que %ld vies maintenant !\n\n", nombreDeVies);
system("PAUSE");
return 0;
}
comment je peux faire pour trouver une autre solution que de plutot ecrire nombreDeVie = 4 je ne pourrais pas faire un truc comme reste (reste étant un autre nom de variable) donc reste - quelque chose ??
-
ContributeurJe crois que la il s'agit de rapidité, d'efficacité, de ponctualité... Je m'égare.
Non, peu importe, si tu connais la valeur de la variable des sa création, assigne lui tout de suite sa valeur...
-
une autre question :
pour les histoires de variables :
est-ce que c'est pareil de mettre par exemple :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long nombreDeVies;
nombreDeVies = 5;
system("PAUSE");
return 0;
}
ou alors c'est mieux de mettre :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long nombreDeVies = 5;
system("PAUSE");
return 0;
}
?????
-
HACKER 712 tu connais le C par coeur ?
Tu as déjà créer des programmes utiles et les as tu publier sur des sites ?
- 1
- 2
- 3
Suivant