Почему выдает ошибку в короткой программе (вычисление суммы бесконечного ряда с точностью) - C (СИ)
Формулировка задачи:
Немаленький опыт работы в паскале и дэлфи. Нужно теперь разобраться в си. Прога отыскания суммы бесконечного ряда с точностью.
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
double EPS, Tek, Sum;
int T;
T = 1;
Tek = -1;
Sum = Tek;
printf("Input EPS: ");
scanf("%lf", &EPS);
for (T = 2; fabs(Tek) > EPS; T++)
{
Tek = Tek * pow(5, 2 * (T + 1)) / (T * (T + 1));
Sum += Tek;
}
printf("Summa = %lf", Sum);
getch();
return 0;
}
//---------------------------------------------------------------------------Решение задачи: «Почему выдает ошибку в короткой программе (вычисление суммы бесконечного ряда с точностью)»
textual
Листинг программы
uzurpator@bash:~/samples$ cat driver.c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main () {
int x = 3, y = 4;
fprintf(stdout, "%lf\n", pow(x,y));
return 0;
}
uzurpator@bash:~/samples$ gcc driver.c -std=c99 -lm
uzurpator@bash:~/samples$ ./a.out
81.000000
uzurpator@bash:~/samples$
Объяснение кода листинга программы
- Программа начинается с объявления трех переменных типа int: x, y и какой-то неопределенной переменной, которая будет использоваться в качестве результата вычисления функции main.
- Затем программа использует функцию fprintf для вывода значения функции pow(x, y) в стандартный вывод.
- Функция pow(x, y) вычисляет значение x в степени y.
- Значения переменных x и y передаются в функцию pow в качестве аргументов.
- Результат вычисления функции pow сохраняется в переменной, которая была объявлена ранее в функции main.
- Программа завершается возвратом функции main значения 0, что указывает на успешное выполнение программы.
- При выполнении программы значения переменных x и y инициализируются значениями 3 и 4 соответственно.
- Программа выводит значение 81.000000 в стандартный вывод.
- Значение 81.000000 является результатом вычисления функции pow(3, 4).
- Значение 81.000000 представляет собой число 81.0 в формате с плавающей точкой.
- Программа успешно компилируется с использованием компилятора gcc с флагом -std=c99, который обеспечивает поддержку стандарта C99.
- Программа успешно выполняется с использованием среды выполнения a.out.
- Значение 81.000000 отображается в консоли.
- Ввод/вывод программы осуществляется с использованием стандартных функций ввода/вывода, предоставляемых библиотекой stdio.h.
- Программа использует функцию pow, которая предоставляется библиотекой math.h.
- Значение 81.000000 представляет собой результат вычисления функции pow(3, 4).
- Значение 81.000000 является точным результатом вычисления функции pow(3, 4).
- Значение 81.000000 представляет собой число 81.0 в формате с плавающей точкой.
- Значение 81.000000 отображается в консоли.
- Программа успешно завершается.