CiaraMc96 Ответов: 1

Ошибка при получении суммирования


Я пытаюсь получить два разных суммирования, но всякий раз, когда я запускаю его, я получаю ошибку " исключение с плавающей запятой (ядро сбрасывается)". Я не могу понять, почему, хотя. Я пробовал играть с установкой моих n на разные значения, но это, похоже, ничего не меняет

Что я уже пробовал:

#include<stdio.h>  

int main()                                                                     
{   
   float s=0,t=0;
   int n;
   for(n=1;n<=123456;n++)
   {
        s=s+(2/(n*n));
   }
   n=0;
    for(n=123456;n>=1;n--)
   {
        t=t+(2/(n*n));
   }
   printf("\n%f",(3.14*3.14/3));  
   printf("\n%f",s);
   printf("\n%f",t);
   printf("\n%f",s-t);
   printf("\n%e",s-t);
   printf("\n%g",s-t);
   return(0);                                 
} 

1 Ответов

Рейтинг:
2

CPallini

Исключение легко исправляется заменой

Цитата:
s=s+(2/(n*n));
с
s=s+(2.0/(n*n));


и


Цитата:
t=t+(2/(n*n));
с
t=t+(2.0/(n*n));



Заметим, однако, что получение значимого результата с помощью floats - это сложнее.