0

Hi! I had 1 problem in C, now I have another one. :o
Please bear with me. I am learning the C language.

Please run the following calculation in a scientific calculator. When the "=" sign is shown at the end of the calculation, be sure to press the = button on the calculator. Asin is labeled Sin -1 on some calculators. It dosn't matter if you don't have a scientific calculator.

((292.797 sin)*0.39777)asin=

The answer should be: -21.6685752754108925

Here is the same calculation in C. This is the way I do it:

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

main()
{
double math;

math=sin(292.797) * asin(0.39777);

printf("The result is %f",math);

return 0;

}

Ok, why aren't the 2 calculations the same? I need them the same. I have tried using different types of variables, I have tried converting radians to degrees, (math * 180 / PI) I have tried other things too, but to no avail. I have even tried doing a simple calculation like the following, to see if I did a mistype:

math=sin(1);

Even the above problem won't compute the same. It'll work fine for the basic calculations (+, -. x, -).

I think my problem might be converting radians to degrees (not sure). I have heard several calculations on converting radian numbers to degrees, and I have tried all of them. None have seemed to work.

I would appreciate ANY help on how I can get the 2 calculations to be the same.

3
Contributors
3
Replies
5
Views
12 Years
Discussion Span
Last Post by vegaseat
0

Hi Ray,

it looks like your caculator is in RPN (a.k.a. Reverse Polish Notation) mode.

In order to relect the same sequence of operations in C, you should convert to standard notation:

asin (0.39777 * sin (292.797)) If you then wanted to convert the answer into Degrees instead of radians, simply multiply the answer by 180 / PI.

PI = 3.14.....
180 / PI * asin (0.39777 * sin (292.797))

I hope I understood your question. and I hope this helps.


Ed


((292.797 sin)*0.39777)asin=

The answer should be: -21.6685752754108925

0

Thank You for your response! I will try what you said

0

You have to be careful with radians and degrees, don't get them mixed up!

// result is supposed to be -21.6685752754108925 ?
// my casio calculator and the computer says -21.51209184

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

int main(void)
{
  double math, PI, x; 
  
  PI = atan(1) * 4.0;    // a little old fashioned trickery to get PI
  x = 292.797 * PI/180;  // degrees to radians
  
  math = asin(sin(x) * 0.39777);

  printf("The result is %f radians",math); 
  
  math = math * 180 / PI;   // radians back to degrees 

  printf("\nThe result is %f degrees",math);
  
  getchar();
  return 0;
}

You may have slipped on one of them darn numbers on those tiny calculator keys, hombre! Close enough! Remember, computers never make missteaks!

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.