Aller au contenu

TP de C


ganjatealq

Messages recommandés

bon je galère de trop avec ce fichu TP que cette **** de prof ns refile en pensant qu'on est des dieux de la programmation !!!!

voilà la question : écrire un programme qui echange l'ordre des chiffres d'un nombres a 2 chiffres.

entrée utilisateur : un nombre à 2 chiffres

sortie programme: l'entier résultant de l'inversion de ces 2 chiffres.

voilà ce que j'ai au départ :

int a,b;

printf("Veuillez entrer un nombre à 2 chiffres \n");

scanf("%d%d", &a, &b);

printf("%d%d", b,a);

le pb, c'est qu'il lit pas les 2 chiffres du nbr comme il faut !

help plz, c'est pr demain !!!

Lien vers le commentaire
Partager sur d’autres sites

ou avec des decalages c possible aussi non?

tu penses au décalage de bits (genre shr, shl en assembleur/pascal ou >>, << en C++) ?

Dans ce cas , ce n'est pas possible, car le decalage s'effectue au niveau des bits et non des octets; puisque le decalage revient à une multiplication ou division par une puissance de 2.

Mais si le nombre de départ est en hexadécimal, alors il faut utiliser le décalage

si le nombre de départ est en décimal, alors il faut utiliser le modulo

Lien vers le commentaire
Partager sur d’autres sites

mogwai, je ne remettrais jamais en question tes compétences en programmation, mais je ne suis pas d'accord avec ça :

Mais si le nombre de départ est en hexadécimal, alors il faut utiliser le décalage

si le nombre de départ est en décimal, alors il faut utiliser le modulo

J'aurais plutôt dit :

Il faut utiliser le décalage entres les bits (plus rapide) quand le diviseur est une puissance de 2.

Il faut utiliser le modulo dans tous les autres cas.

Lien vers le commentaire
Partager sur d’autres sites

mogwai, je ne remettrais jamais en question tes compétences en programmation, mais je ne suis pas d'accord avec ça :

J'aurais plutôt dit :

Il faut utiliser le décalage entres les bits (plus rapide) quand le diviseur est une puissance de 2.

Il faut utiliser le modulo dans tous les autres cas.

Je voulais dire que dans son problème le nombre rentré était en décimal

donc dans ce cas, il faut utiliser le modulo

mais si le nombré rentré était en hexa, alors il pouvait utiliser le decalage (à la place du modulo et la division entière)

exemple

Nombre_rentre = AC (hexa) = 10101100 (binaire) = 172 (décimal)

Chiffre_gauche = Nombre_rentre shr 4
Chiffre_droite = Nombre_rentre - (Chiffre_gauche shl 4)

Mais ca ne fonctionne qu'avec l'hexadécimal

d'où mon message

Mais si le nombre de départ est en hexadécimal, alors il faut utiliser le décalage

si le nombre de départ est en décimal, alors il faut utiliser le modulo

quant à

Il faut utiliser le décalage entres les bits (plus rapide) quand le diviseur est une puissance de 2.

Il faut utiliser le modulo dans tous les autres cas.

dans son cas, il ne pouvait pas utiliser le decalage de bits...

C'est vrai, c'est vendredi, je ne suis peut-etre pas tres clair, vivement week-end !

Lien vers le commentaire
Partager sur d’autres sites

Voici le code en langage C :

printf(........): // jusque la c'est bien ce que tu as fait mais tu vas devoir inverser le nombre de 2 chiffres de la facon suivante :

sachant le nombre n=ab : un nombre de 2 chiffres entre 10 et 99 inclus

int x,y;

x=n%10 ; // la tu recuperes le chiffre b (exemple de 25, tu recupere le 5) !

y= n/10 ; // la tu recuperes le chiffre a (exemple de 25 tu recupere le 2)

l'inversion se fait comme suit :

printf(" %d%d",y,x);

Allé, bon courage pour la suite de ton TP !!! ciao !

Lien vers le commentaire
Partager sur d’autres sites

On pourrait si tu stoque ton nombre sous forme de chaines de caractères.

On peut remplacer le scanf("'%d") par un scanf("%s")

Mais généralement les nombres sont stoqués en entiers, ce qui prends moins de place et est plus rapide.

Je parlais de :

#include <stdio.h>

void main()

{

    char a=' ',b=' ';

    printf("Saisir le nombre à deux chiffres :\n");

    a = getchar();

    b = getchar();

    printf("Nombre inversé = %c%c\n",b,a);

}

Avec plus de deux chiffres, inverser le nombre reste facile.

Lien vers le commentaire
Partager sur d’autres sites

Moi ce que j ai eu c est:

Lire 10 phrases au clavier

Les stocker

Les decomposer en mots

Afficher une majuscule a chaque premiere lettre d un mot

Afficher une majuscule a chaque voyelle

Tout afficher

Facile avec les pointeurs !

1) découpage des phrases en mots

==> Faire une liste de liste (chaque élément étant un mot)

2) les traitements sur chaque mot

Affichage

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...