Упростить программу для вычисления суммы - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста упростить программу, принес преподавателю, он сказал что мы такого не проходили, сказал заново делать, заранее огромное спасибо. Задание: Написать программу для вычисления суммы S=1+(1/2^2)-(1/3^2)+(1/4^2)-...(1/N^2)m... пока последнее слагаемое не станет по модулю меньше заранее заданного действительного числа Е<1. Вывести на экран значение S.
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3. #define n 50
  4. int main(){
  5. float s = 1.0;
  6. int e = 1;
  7. int i;
  8. for(i = 2; i < n; i++){
  9. if(i % 2 == 0){
  10. s += pow((float)1/n, 2);}
  11. else{
  12. s -= pow((float)1/n, 2);}
  13. if(s < e)
  14. break;
  15. }
  16. printf("%f", s);
  17. return 0;
  18. }

Решение задачи: «Упростить программу для вычисления суммы»

textual
Листинг программы
  1. float absf(float f) {
  2.     if (f < 0) f *= -1.0f;
  3.     return f;
  4. }
  5. int main() {
  6.     float e;
  7.     scanf("%f", &e);
  8.     if (e < 0 || e > 1) return 1;
  9.     float sum = 0.0f;
  10.     float a = 1.0f;
  11.     int i=1;
  12.     do {
  13.         sum += a;
  14.         ++i;
  15.         float k = 1.0f;
  16.         if (i%2 == 1) k = -1.0f;
  17.         a = k/(i*i);
  18.     } while(absf(a) > e);
  19.     printf("sum: %f", sum);
  20. }

Объяснение кода листинга программы

  1. В функции absf проверяется, является ли число отрицательным. Если это так, то оно умножается на -1.0f.
  2. В функции main считывается число с помощью scanf.
  3. Проверяется, является ли число отрицательным или больше 1. Если это так, то программа завершается.
  4. Инициализируется переменная sum равной 0.0f.
  5. Инициализируется переменная a равной 1.0f.
  6. Инициализируется переменная i равной 1.
  7. В цикле do-while происходит следующее:
    • К переменной sum прибавляется значение переменной a.
    • Значение переменной i увеличивается на 1.
    • Внутри цикла внутри if проверяется, является ли i нечетным числом.
    • Если это так, то значение переменной k устанавливается равным -1.0f.
    • Значение переменной a обновляется как k/(i*i).
  8. Цикл выполняется до тех пор, пока абсолютное значение a не станет меньше e.
  9. Выводится значение переменной sum.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы