Help please...output problems with printf.


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Help please...output problems with printf.
# 1  
Old 10-19-2008
Error Help please...output problems with printf.

Code:
#include <stdio.h>
#include <math.h>

// this function calculates the volume of a Cylinder
int main(void)
{
    int r;    // radius
    int h;    // height
    double M_PI; // pi
    
    int pOne = pow (r, 2);  
    
    // get user input of radius and height
    printf ("Enter your radius: ");
    scanf ("%f", &r);
    printf ("Enter your height: ");
    scanf ("%f", &h);

    // calculate volume
    
    volumeCylinder = pOne * M_PI * h;

    // output volume result
    
    printf ("The Volume of the Cylinder is: %lf\n", volumeCylinder);

    return 0;

}

Sample Output:
Code:
~Enter your radius: 3
~Enter your height: 2
~The Volume of the Cylinder is: 0.000000
~

The program compiles and runs but no matter what kind of printf format I do (double, float, int) I always get 0.0000..., -0.000..., or some really large number.

I don't know what could be wrong. Can anybody please help me with this? It is driving me insane.
# 2  
Old 10-19-2008
1. You have calculate the power of r before assigning a value to it
2. The scanf function isn't used properly
3. M_PI is already defined in math.h
4. You haven't declare volumeCylinder before using it

Try this:

Code:
#include <stdio.h>
#include <math.h>

// this function calculates the volume of a Cylinder

int main(void)
{
    int r;    // radius
    int h;    // height
    double volumeCylinder; 

    // get user input of radius and height
    printf ("Enter your radius: ");
    scanf ("%d", &r);
    printf ("Enter your height: ");
    scanf ("%d", &h);

    // calculate volume

    int pOne = pow (r, 2);     

    volumeCylinder = pOne * M_PI * h;

    // output volume result
    
    printf ("The Volume of the Cylinder is: %lf\n", volumeCylinder);

    return 0;

}

Regards
# 3  
Old 10-19-2008
Bug

Thanks for your help! Smilie

It didn't even occur to me to check placement. Oops.
# 4  
Old 10-19-2008
You are using the %f format to scanf, but storing to an (int). (%f requires a (double) to receive the result. GNU C with -Wformat would warn you of this mistake.)
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to use printf to output a shell variable path?

So I created two shell variables: COLUMN1_HEADING, COLUMN2_HEADING. They have values: COLUMN1_HEADING="John" COLUMN2_HEADING="123456789" How would I use printf to get it to print an output like this: $COLUMN1_HEADING\t$COLUMN2_HEADING\nJohn\t123456789\n Thanks! (3 Replies)
Discussion started by: steezuschrist96
3 Replies

2. Shell Programming and Scripting

Managing output... echo or printf?

Hello script guru's as i write more and more code i always block at managing output... either writing to standard out, writing to files via std out (log, temp file, etc). Don't get me wrong 99% of the time it DOES the job but maybe there is more efficient. I'm writing a small script to... (2 Replies)
Discussion started by: maverick72
2 Replies

3. Shell Programming and Scripting

Excel table like output with printf

Hi All; I try to create a excel like table with headers and some fields containing values, other long and complex mathematic formulas. I have some header like : Name Formula Value True/False Under name column, they are some formula names, formula column some long mathematic formulas... (9 Replies)
Discussion started by: reseki
9 Replies

4. Shell Programming and Scripting

Problems with awk printf, formatted output

Hi, i have a script, which is incomplete, am on my way developing it. Input 1,12,2012,IF_TB001 2,12,2012,3K3 3,Z56,00000,25,229,K900,00, ,3G3, ,USD, ,0000000000,000, , , , 550000000 3,Z56,00000,53,411,W225,00,000, , ,USD,OM170,0000000000,000, , , , -550000000 4,Z56,COUNT, 4,SUM LOC,... (19 Replies)
Discussion started by: selvankj
19 Replies

5. Shell Programming and Scripting

printf Hexadecimal output

printf "%X\n" "A" 41 printf "%X\n" "2" 2 Expected 32 (not 2). Is there a "printf" which will output the hexadecimal value of a numeric character? (9 Replies)
Discussion started by: methyl
9 Replies

6. Programming

capture the output of printf into another variable

Hi , I wonder if in java I can pipe the below output of the printf into a variable: System.out.printf(" This is a test %s\n", myVariable); I want to keep the output of the printf command to create my history array. Thanks. (2 Replies)
Discussion started by: arizah
2 Replies

7. Shell Programming and Scripting

How to format the output using float in awk{printf}

Hi I'm using awk to manipulate the data in the 6th field of the file xxx_yyy.hrv. The sample data that is available in this field is given below 220731.7100000000000000 When i tried using this command cat xxx_yyy.hrv | awk '{printf("%23.16f\n",$6*-1)}' I get the output as... (4 Replies)
Discussion started by: angelarosh
4 Replies

8. Shell Programming and Scripting

find: problems escaping printf-command string

Hi Folks! Can you help me with this find -printf command. I seem to be unable to execute the printf-command from my shell script. I'm confused: :confused: My shell script snippet looks like this: #!/bin/sh .. COMMAND="find ./* -printf '%p %m %s %u %g \n'" echo "Command: ${COMMAND}"... (1 Reply)
Discussion started by: grahamb
1 Replies
Login or Register to Ask a Question