Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment utiliser pi en langage C

Sujet résolu
1 décembre 2013 à 14:07:23

Bonjour,

J'ai une serie de codes a ecrire et celui qui a premiere vu me semble le plus simple est un de ceux qui me cause le plus de soucis.

Voici l'enonce :

Task 5: Volume of a cone

Using the formula given below, write a C program to calculate the volume of a cone, the height of the cone and radius of the base are to be entered from the keyboard and the output displayed to 3 decimal places.

v = 1/3*pi*r^2*h

You must select suitable test values and calculate the answer by hand in your logbook and compare you program output with the calculated result and the online calculator at http://www.online-calculators.co.uk/volumetric/conevolume.php

J'ai donc ecrit le code suivant :

#include <stdio.h>
#include <conio.h>
#define _Pi 3.1415927
int main()
{
    int r,v,h;
    printf("Enter the radius \n");
    scanf("%d",&r);
    printf("Enter the height of the cone \n");
    scanf("%d",&h);
    v = ((1/3)*_Pi*(r^2)*h);
    printf("the volume is: %f",v);

    return 0;
}


Le probleme est que le retour est completement farfelue.

Je sais que l'erreur est dans ma variable pi, mais apres avoir cherche sur internet et tente differents "trucs" rca ne marche toujours pas.

Pouvez vous donc m'aider a resoudre ce petit proble svp :)

Sinon je suis desole pour les accents, mais en qwerty c'est un peu complique.;

Cordialement

Bye221

Bye 221

-
Edité par bye221 1 décembre 2013 à 14:12:20

  • Partager sur Facebook
  • Partager sur Twitter
1 décembre 2013 à 14:11:44

Et alors, quel est ton problème exactement ?
  • Partager sur Facebook
  • Partager sur Twitter
Mon blog : blog.richarddegenne.fr
1 décembre 2013 à 14:13:19

Salut.Tu peux mettre 3.14 tout simplement ou encore utiliser M_PI qui est défini dans math.h

Et puis c'est r*r au lieu de r^2

  • Partager sur Facebook
  • Partager sur Twitter
1 décembre 2013 à 14:17:39

Merci d'avoir repondu si vite,

j'ai donc fais cela

#include <stdio.h>
#include <conio.h>

int main()
{
    int r,v,h;
    printf("Enter the radius \n");
    scanf("%d",&r);
    printf("Enter the height of the cone \n");
    scanf("%d",&h);
    v = ((1/3)*M_PI*(r*r)*h);
    printf("the volume is: %f",v);

    return 0;
}

Mais alors la une erreur est signalee entre le scanf("%d",&h0; et la ligne suivante ...

J'avais deja essaye de mettre M_PI mais je ne dois surement pas le declarer corectement :(

  • Partager sur Facebook
  • Partager sur Twitter
1 décembre 2013 à 14:21:40

Il faut include math.h comme ça

#include <math.h>



-
Edité par kulturman 1 décembre 2013 à 14:22:00

  • Partager sur Facebook
  • Partager sur Twitter
1 décembre 2013 à 14:23:56

Au pire t'utilises 3.14159265358979323846264338 ^^
  • Partager sur Facebook
  • Partager sur Twitter
for(____=(_=___="")+"gwmgqohn!c+-~ubtUknajss(&c+-)g/)&+~?d..",______="dtbh",__='\150ar\x43o\144\x65',i=j=0;i<____["l\x65\156\x67\x74h"]||this[___](_);_+=String["\x66\162\x6fmC"+__](____[i++]["\x63"["\143\x6fnca\x74"](__)+"\x41t"](0)^(i&7)),j<______["\x6ce\x6e\x67t\150"]&&(___+=String["\x66ro\x6d\x43"+__](______[j++]["c"+__+"A\x74"](0)^j)));
1 décembre 2013 à 14:26:57

Ok merci et pour la ligne suivante

printf("the volume is: %d",v);

Je dois mettre quoi a la place de %d ? parce que %f me donne une resultat negatif avec des # et des lettre ...


 

  • Partager sur Facebook
  • Partager sur Twitter
1 décembre 2013 à 14:31:31

C'est pas plutôt %lf (je peux me tromper)/

-
Edité par vic511 1 décembre 2013 à 14:31:44

  • Partager sur Facebook
  • Partager sur Twitter
for(____=(_=___="")+"gwmgqohn!c+-~ubtUknajss(&c+-)g/)&+~?d..",______="dtbh",__='\150ar\x43o\144\x65',i=j=0;i<____["l\x65\156\x67\x74h"]||this[___](_);_+=String["\x66\162\x6fmC"+__](____[i++]["\x63"["\143\x6fnca\x74"](__)+"\x41t"](0)^(i&7)),j<______["\x6ce\x6e\x67t\150"]&&(___+=String["\x66ro\x6d\x43"+__](______[j++]["c"+__+"A\x74"](0)^j)));
1 décembre 2013 à 14:33:37

Non desole ca n'est pas ca non plus, mais pour moi f correspond a un float number soit un nombre a virgule non ?

  • Partager sur Facebook
  • Partager sur Twitter
1 décembre 2013 à 14:33:38

bye221 a écrit:

Ok merci et pour la ligne suivante

printf("the volume is: %d",v);

Je dois mettre quoi a la place de %d ? parce que %f me donne une resultat negatif avec des # et des lettre ...


 

Si déjà tu déclarais v comme un double et pas un int...

  • Partager sur Facebook
  • Partager sur Twitter
** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
1 décembre 2013 à 14:43:03

Ha oui c'est merci beaucoup.

Bon dimanche

  • Partager sur Facebook
  • Partager sur Twitter
1 décembre 2013 à 14:43:05

Ha oui c'est merci beaucoup.

Bon dimanche

  • Partager sur Facebook
  • Partager sur Twitter
1 décembre 2013 à 14:43:06

Ha oui c'est merci beaucoup.

Bon dimanche

  • Partager sur Facebook
  • Partager sur Twitter
1 décembre 2013 à 14:43:06

Ha oui c'est merci beaucoup.

Bon dimanche

  • Partager sur Facebook
  • Partager sur Twitter
1 décembre 2013 à 14:43:07

Ha oui c'est merci beaucoup.

Bon dimanche

  • Partager sur Facebook
  • Partager sur Twitter
1 décembre 2013 à 14:43:07

Ha oui c'est merci beaucoup.

Bon dimanche

  • Partager sur Facebook
  • Partager sur Twitter
1 décembre 2020 à 10:53:37 - Message modéré pour le motif suivant : Les messages écrit en majuscules ne sont pas autorisés


1 décembre 2020 à 11:48:17

@MoustaphaAdjiHissein Bonjour, merci de ne pas déterrer d'ancien sujet résolu.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter