gusious

Jun 25, 2008, 03:36 PM

Hi.This is a bit urgent....

I am writing a program in C and i need to insert ln(natural logarithm).How do i do that?

I am writing a program in C and i need to insert ln(natural logarithm).How do i do that?

View Full Version : How to insert natural logarithm in C.Urgent...

gusious

Jun 25, 2008, 03:36 PM

Hi.This is a bit urgent....

I am writing a program in C and i need to insert ln(natural logarithm).How do i do that?

I am writing a program in C and i need to insert ln(natural logarithm).How do i do that?

luckylefty01

Jun 25, 2008, 03:41 PM

#include <math.h>

log(number); // Computes the ln of number

Is that what you need?

log(number); // Computes the ln of number

Is that what you need?

gusious

Jun 25, 2008, 03:50 PM

That's what i have inserted but i have this message: error: invalid lvalue in assignment

What's that?Oh,should i declair the value ln(number) which is ln(pi)+=log(pi) as float?

What's that?Oh,should i declair the value ln(number) which is ln(pi)+=log(pi) as float?

luckylefty01

Jun 25, 2008, 03:57 PM

I think your problem is that ln(pi) is not a variable; thus, you can't use it on the left side of an assignment.

I think what you want is:

double result;

result = log(pi)+log10(pi); //assigns the result of ln(pi) plus log(base ten)(pi) to result.

I think what you want is:

double result;

result = log(pi)+log10(pi); //assigns the result of ln(pi) plus log(base ten)(pi) to result.

Eraserhead

Jun 25, 2008, 03:59 PM

You use log(x) to calculate the natural logorithm of x. C is like mathematicians, who use log to mean the natural log rather than ln.

see man math on the command line for this information.

see man math on the command line for this information.

gusious

Jun 25, 2008, 04:09 PM

No i don't need log.I only need ln.Wait a sec.Or more.I had an idea...

Check this out:

#include <stdio.h>

#include <math.h>

main()

{

float H,pi;

int n,ni,i,x[1000],y[1000],points;

points=0;

printf("insert ni and n\n");

while(scanf(" %d %d ",&ni,&n) ==2)

{

x[points]=ni;

y[points]=n;

points++; }

pi=0;

H=0;

for(i=0; i<points; i++)

{

pi= pi + x[i]/y[i];

}

H=-(pi*ln(pi));

printf("The pi is %f,the ln(pi) is %f and the H is %f\n",pi,ln(pi),H);

}

I want to calculate the sum pi*ln(pi).So,can you find me the problem?

Check this out:

#include <stdio.h>

#include <math.h>

main()

{

float H,pi;

int n,ni,i,x[1000],y[1000],points;

points=0;

printf("insert ni and n\n");

while(scanf(" %d %d ",&ni,&n) ==2)

{

x[points]=ni;

y[points]=n;

points++; }

pi=0;

H=0;

for(i=0; i<points; i++)

{

pi= pi + x[i]/y[i];

}

H=-(pi*ln(pi));

printf("The pi is %f,the ln(pi) is %f and the H is %f\n",pi,ln(pi),H);

}

I want to calculate the sum pi*ln(pi).So,can you find me the problem?

Nuc

Jun 25, 2008, 04:16 PM

Change ln(...) to log(...) like he said. If you're not satisfied with his answer then try it and then double check it with your calculator...

Nuc

Nuc

Sayer

Jun 25, 2008, 04:18 PM

Change 'ln' to 'log'.

In programming log(N) is the natural log of N.

Of course the program will never end unless you error it somehow. Glad I never wasted time "learning" programming in school. I wonder how anyone gets anywhere at first.

In programming log(N) is the natural log of N.

Of course the program will never end unless you error it somehow. Glad I never wasted time "learning" programming in school. I wonder how anyone gets anywhere at first.

gusious

Jun 25, 2008, 04:18 PM

Yup.I just saw that and correct it.

Enuratique

Jun 25, 2008, 04:22 PM

Check this out:

#include <stdio.h>

#include <math.h>

main()

{

float H,pi;

int n,ni,i,x[1000],y[1000],points;

points=0;

printf("insert ni and n\n");

while(scanf(" %d %d ",&ni,&n) ==2)

{

x[points]=ni;

y[points]=n;

points++; }

pi=0;

H=0;

for(i=0; i<points; i++)

{

pi= pi + x[i]/y[i];

}

H=-(pi*ln(pi));

printf("The pi is %f,the ln(pi) is %f and the H is %f\n",pi,ln(pi),H);

}

I want to calculate the sum pi*ln(pi).So,can you find me the problem?

I see you've got it now...

#include <stdio.h>

#include <math.h>

main()

{

float H,pi;

int n,ni,i,x[1000],y[1000],points;

points=0;

printf("insert ni and n\n");

while(scanf(" %d %d ",&ni,&n) ==2)

{

x[points]=ni;

y[points]=n;

points++; }

pi=0;

H=0;

for(i=0; i<points; i++)

{

pi= pi + x[i]/y[i];

}

H=-(pi*ln(pi));

printf("The pi is %f,the ln(pi) is %f and the H is %f\n",pi,ln(pi),H);

}

I want to calculate the sum pi*ln(pi).So,can you find me the problem?

I see you've got it now...