DanielRossi
DanielRossi

Reputation: 67

How do I print the answer to an equation in C?

I'd like for the program to solve my equation yet sadly it doesn't. Additionally, I'd want for it to print an answer depending on the value of x that I input in the equation. Please let me know how I would be able to print the answer or how I can program it so that the equation gives me an answer that I can then print.

/* Preprocessor directives */
#include <stdio.h>
#include <math.h>

/* Main program */
void main ()
{
    /*
        variable declaration section comments

    l:              length value
    q:              value of q
    ei:             value of ei
    s:              l devided by 2 since 0 < x < l/2
    b:              the length l (thus, 20)
    z:              0
    first_equation: The first equation pertaining to 0 < x < l/2
    second_equation:The second equation pertaining to l/2 < x < l
*/

double x, first_equation, second_equation, l, q, ei, s, b, z;

l = 20.0;
q = 4000.0;
ei = 1.2 * (pow(10.0, 8.0));
s = l / 2.0;
b = l;
z = 0.0;

printf ("please enter the x-value\n");
scanf ("%lf", &x);

/* Deflection equations */
first_equation = ((q * x) / (384.0 * ei)) * ((9 * (pow(l, 3.0))) - (24.0 * l      * (pow(x, 2.0))) + (16 * (pow(x, 3.0))));
second_equation = ((q * l) / (384.0 * ei)) * ((8 * (pow(x, 3.0))) -     (24.0 *       l * (pow(x, 2.0))) + (17 * (pow(l, 2.0)) * x) - (pow(l, 3.0))); 

    /* Determining what equation to use */
    if (x >= z && x <= s)
        printf ("\n first_equation\n\n");
    else if (x > s && x <= b)
        printf ("\n second_equation\n\n", second_equation);
    else if (x < 0 || x > b)
        printf ("\n invalid location\n\n");

    return;
}

Upvotes: 0

Views: 4653

Answers (2)

Tony Delroy
Tony Delroy

Reputation: 106196

This...

printf ("\n second_equation\n\n", second_equation);

... does not print the second_equation variable: it provides it as an argument to printf, but printf only uses extra arguments as directed by %f or other conversion instructions embedded in the text provided as the first argument. You could write:

printf ("\n second_equation %f\n\n", second_equation);

You may want to do something similar for first_equation.

Alternatively [when I answered the question was tagged C++] you could use C++ I/O routines (scanf and printf are from the C library, and have a number of disadvantages, the most obvious here being that you have to remember funny letter codes like "lf" matching your data types)...

#include <iostream>

...at the very top of your file, then in your function write...

std::cout << "\n second_equation " << second_equation << "\n\n";

You could also use C++ I/O for input, replacing scanf with...

if (!(std::cin >> x))
{
    std::cerr << "you didn't enter a valid number\n";
    exit(1);
}

Upvotes: 3

Soma Mbadiwe
Soma Mbadiwe

Reputation: 1674

Your code is really unclear; but going by your question, you seem to want to be able to print your answer. In that case, here is the proper syntax

printf ("Answer: %d \n", yourAnswer); //if 'yourAnswer' is decimal or number

To use one of your code snippets, you'll have this:

printf ("\n second_equation: %d\n", second_equation);

Upvotes: 0

Related Questions