Запись структуры в файл. Исправьте код - 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;
}

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

  1. Включаем необходимые заголовочные файлы для работы с файлами и математическими функциями.
  2. Определяем структуру tab, которая содержит два поля типа double - x и y.
  3. Определяем функцию с именем function, которая принимает один аргумент типа double и возвращает результат вычисления логарифма от этого аргумента, делённого на сам аргумент.
  4. В функции main() открываем файл tab.txt для записи с помощью функции fopen().
  5. Задаём значения переменных a, b и step с помощью функции scanf().
  6. Создаём объект типа tab с именем tab_function.
  7. Используем цикл for для вычисления значений функции на отрезке [a, b] с шагом step и записываем их в файл tab.txt.
  8. Если значение i не равно нулю (т.е. цикл не начинается с первой итерации), то записываем значения x и F(x) в файл, используя функцию fprintf().
  9. Закрываем файл с помощью функции fclose().
  10. Используем функцию system() для вывода сообщения об успешном выполнении программы и завершения работы.
  11. Возвращаем 0, чтобы указать, что программа успешно завершилась.

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


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

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

10   голосов , оценка 4.2 из 5
Похожие ответы