0

here's the code it is supposed to display the value of my function (1/1+(25xx)) in a [-1,1] interval. But when I run it I have 1 as a result!!

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

 int main(){
    int i,n;
    double y=0;
    double t=0;
    double delta=0;
    scanf("%d",&n);
    delta=1/n;
    
    for (i=0;i<n;i++)
     {
    
        t=t+delta;
        y= 1 / (1 + (25*t*t));
    
        printf("%lf \n",y);
        
     }
    return 0;}
Blobmou
  • 1
  • 2

1 Answers1

-2

Your program is working with integer math. Be sure to use double literals and to cast integers to doubles where needed.

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

int main() {
  int i, n;
  double y = 0, t = 0, delta;
  scanf("%d",&n);
  delta = 1 / (double)n;
  for (i = 0; i < n; i++) {

    t = t + delta;
    y = 1.0 / (1.0 + (25.0 * t * t));
    printf("%lf \n", y);
  }
  return 0;
}
AKX
  • 152,115
  • 15
  • 115
  • 172