Запись структуры в файл. Исправьте код - C (СИ)
Формулировка задачи:
Задание, протабулировать функцию и записать результаты табуляции в файл с помощью структуры.
В файле должно отображаться вот так:
X=
Значение X
F(x)=
Значение F(x)
Код(исправьте чтобы было как в задании, и если можно напишите код, чтобы затем считывать с этого файла данные и выводить их на экран):
#include <stdlib.h> #include <stdio.h> #include <math.h> struct Tab { char x1[2]; int x2; char Fx1[5]; float Fx2; float F(float x) { float F; F=log(x)/x; return(F); } main() { float x; struct Tab t; FILE *func1; func1=fopen("func.txt","w"); for (x=1;x<=4;x+=0.1) { fprintf(func1," X=%.2f",x); fprintf(func1," F(X)=%2.4f",F(x)); } fclose(func1); }
Решение задачи: «Запись структуры в файл. Исправьте код»
textual
Листинг программы
#include <cstdio> #include <cstdlib> #include <cmath> struct tab { double x; double y; }; double function(double x) { return log(x) / x; } int main() { FILE * file; file = fopen("tab.txt", "w"); double a, b, step; printf("Enter a:\t"); scanf("%lf", &a); printf("Enter b:\t"); scanf("%lf", &b); printf("Enter step:\t"); scanf("%lf", &step); tab tab_function; double i; for (i = a; i <= b; i += step) { if (i != 0) { tab_function.x = i; tab_function.y = function(i); fprintf(file, "x = %4.2lf\tF(x) = %4.2lf\n", tab_function.x, tab_function.y); } } fclose(file); system("pause"); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с файлами и математическими функциями.
- Определяем структуру tab, которая содержит два поля типа double - x и y.
- Определяем функцию с именем function, которая принимает один аргумент типа double и возвращает результат вычисления логарифма от этого аргумента, делённого на сам аргумент.
- В функции main() открываем файл
tab.txt
для записи с помощью функции fopen(). - Задаём значения переменных a, b и step с помощью функции scanf().
- Создаём объект типа tab с именем tab_function.
- Используем цикл for для вычисления значений функции на отрезке [a, b] с шагом step и записываем их в файл
tab.txt
. - Если значение i не равно нулю (т.е. цикл не начинается с первой итерации), то записываем значения x и F(x) в файл, используя функцию fprintf().
- Закрываем файл с помощью функции fclose().
- Используем функцию system() для вывода сообщения об успешном выполнении программы и завершения работы.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д