begin process at 2012 05 28 14:01:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

besoin d'aide, débutant..


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

besoin d'aide, débutant..

mercredi 9 août 2006 à 14:48:28 | besoin d'aide, débutant..

boozid

Je débute en C, pouvez vous me dire ce qu'il ne va pas ?

-> Mes qqes lignes de programme sont censé divisé a par b et de retourner la valeur : le pb est que qd je fais 15/2 cela ne me donne pas 7.5 mais 7.0000..

#include <stdio.h>

 main( )
{
     int a,b;
     float c;
     scanf("%d",&a);
     scanf("%d",&b);
     c=a/b;
     printf("c=%d",c)    
  
  system("PAUSE"); 
  return 0;
}

je crois que c'est dans la déclaration de mes variables que ca ne va pas..

-> Deuxième question :
comment récuperer la valeur entière sans forcement arrondir, d'un nombre à virgule ?
càd que si j'ai 325.9236 je veux 325..

merci
boozid

mercredi 9 août 2006 à 14:58:57 | Re : besoin d'aide, débutant..

leguerinos

Réponse acceptée !
Je n'ai encore que queleque base en C++ mais je vais essayer de t'aider.

En fait le problème provient de tes operandes c'est a dire a et b.
Si a et b sont des entiers alors a/b te renvoi un entier, par conséquent en modifiant le type de a et b cela devrait corriger ton probleme.

J'espère ne pas te dire de bétises sinon je m'en excuse d'avance.
mercredi 9 août 2006 à 15:26:54 | Re : besoin d'aide, débutant..

SAKingdom

Membre Club
Réponse acceptée !
int main( )
{
    int a,b;
    float c;

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

    c = (float)a/(float)b;
    printf("c=%f", c);   
 
    system("PAUSE");
    return 0;
}

2. Disons que que tu as ceci:
    float c = 3.5454f;
pour arrondire:
    int d = c;

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation

mercredi 9 août 2006 à 15:29:26 | Re : besoin d'aide, débutant..

SAKingdom

Membre Club
Réponse acceptée !
Mais si tu veux arrondir à la valeur la plus proche, cette petite fonction, je crois, ferra l'affaire:

int arrondi (float Number)
{   
    float Rest = 0;
    int ToAdd = 0;   
    int Result = 0;

    Rest = (Number - (int)Number);

    if (Rest >= 0.5f)
        ToAdd = 1;

    Result = (int)((Number - Rest) + ToAdd);

    return Result;
}

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation

mercredi 9 août 2006 à 15:33:32 | Re : besoin d'aide, débutant..

MorbhAck

Réponse acceptée !
Il y a plus simple pour arrondir un chiffre a virgule !

ceil(1.21315);
         /\
         ||
   Ton chiffre a arrondir !
mercredi 9 août 2006 à 15:37:10 | Re : besoin d'aide, débutant..

boozid

merci ca marche ! ;)

même si je ne comprend pas pourquoi si je déclare la variable c en float je ne peux pas diviser a par b même s'ils sont déclaré en entier ? je ne modifie pourtant pas leur valeur...

en tt cas merci leguerinos..

et pour ma deuxième question sur la valeur entière svp ?

boozid
mercredi 9 août 2006 à 15:38:08 | Re : besoin d'aide, débutant..

yoyo269

Membre Club
Réponse acceptée !
Salut boozid,

pour obtenir 7.5 en divisant 15 par 2, il faut faire 15/2.0. En fait tu forces un division par un float, 2.0.
Si tes valeurs sont contenues dans des variables, c'est comme leguerinos l'a dit. Donc pour obtenir un résultat à virgule, je te propose ceci : c = b/(float)a;
Je pense (mais pas sûr) que ça ira comme ça. Si non, essaie de rajouter (float) devant b.

En ce qui concerne la valeur entière d'un chiffre à virgule, il suffit de faire :
int Valeur_entiere = (int)chiffre_a_virgule;

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

mercredi 9 août 2006 à 15:40:24 | Re : besoin d'aide, débutant..

SAKingdom

Membre Club
boozid>>Tu sais pas lire? ;) Lit le reste des posts pour ta deuxième questions.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation< body>

mercredi 9 août 2006 à 15:40:44 | Re : besoin d'aide, débutant..

steve_clamage

Réponse acceptée !
On peux faire

(float)a/b
(float)a/(float)b
a/(float)b

c'est équivalent du moment qu'une des deux opérandes est float l'autre (si entière) est promue en float.
L'expression a/b est de type int si a et b sont de type int.

mercredi 9 août 2006 à 15:41:16 | Re : besoin d'aide, débutant..

boozid

ok ca marche merci à tous ;)

boozid

1 2

Cette discussion est classée dans : aide, valeur, débutant, scanf


Répondre à ce message

Sujets en rapport avec ce message

Aide débutant, prog en C , librairie allegro ? [ par dada94 ] Voila je commence le C, et apres m'etre amuser a realiser un petit PONG (tres tres basic) en mode console, j'aimerais me tourner vers un mode graphiqu PB Scanf() [ par mleclaire ] Bonjour je suis débutant en programmation,je suis en train de programmer en c++ builder,est ce que c'est possible d'utiliser scanf()?si oui,je voudrai débutant, demande d'aide ! [ par benidc ] bonjour,je suis interressé par les diférents langages de programmation, mais je débute et je m'engage dans un BTS IG par correspondance car je suis dé Débutant cherche aide [ par rudhf ] Bonjour,Je n'ai jamais programmé avec C++, j'ai essayé de compiler une source prise d'un livre en utilisant MS Visual C++ 6 mais je n'ai pas réussi. I aide débutant [ par rocca951 ] Bonjour je suis en ecole d ingenieur spé. industrielJ ai eu 20 heures de cours en c++. J'ai un programme a faire et j'ai besoin d'aidesi quelqu un peu Recuperer un mot ou une valeur [ par CicinhoRaul ] Bonjour, j'aurai besoin de votre aide pour savoir comment faire pour récuperer une valeur ou une chaine de caracteres.On a par exemple :[Nom] = toto[A Demande aide pour modification valeur de clé registre... [ par Farqual ] Voila j'ai un code seulement je ne sais pas quoi mettre pour que la valeur de ma clé en DWORD soit 1 voila le bout de code : RegSetValueEx(hk, "NomD SALUT je suis débutant BESOIN D'AIDE [ par MrCharli ] je vous explique j'ai un chemin de dossier du style C:\program files\monprogramm\exe\et j'aurais besoi que cela retourne en arrière comme ceci C:\prog recherche comment faire fonctionner ce code via une interface graphique (pilotage port //) [ par cedpic ] voici le code que j ai creer qui marche tres bien en mode console mais je souhaiterais les piloter par une interface graphique en remplacent les bouto Programme dynamic [ par bayans ] Ceci est le programme que j'ai trouver sur le net . Le programeur a laisser un message disant que ce programme etait un progrmme dynamique bon etant q


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,104 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales