Помещение информации в файл - C (СИ)

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

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

Дан массив вещественных чисел. Записать в файл округленные до целых чисел элементы массива. Числа от -50 до 50, выбранные рандомом, кол-во чисел в массиве задать с клавиатуры.

Решение задачи: «Помещение информации в файл»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
 
int main(int argc, char **argv)
{
    int num = 0, i;
    FILE *f;
    double *arr;
    double a = -50.0, b = 50.0;
    const char *filename = "array.txt";
    
    if(argc!=2)
    {
        printf("<prog> <num>");
        return 1;
    }
    
    num = atoi(argv[1]);
    
    if(num <= 0)
    {
        printf("arg error");
        return 1;
    }
    
    f = fopen(filename, "w");
    
    if(!f)
    {
        printf("Can not open file %s", filename);
        return 1;
    }
    
    arr = malloc(num * sizeof *arr);
    
    srand(time(0));
    for(i = 0; i < num; i++)
    {
        arr[i] = ((double) rand() / (double) RAND_MAX) * (b - a) + a;
        printf("%.3lf ", arr[i]);
    }
    
    for(i = 0; i < num; i++)
        fprintf(f , "%d ", (int) round(arr[i]));
    
    free(arr);
    return 0;
}

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

  1. Включаем необходимые заголовочные файлы для работы с файлами, математикой и генерацией случайных чисел
  2. Определяем функцию main, которая принимает аргументы командной строки
  3. Инициализируем переменные: num (количество элементов), i (номер элемента), f (указатель на файл), arr (указатель на массив), a и b (границы для генерации случайных чисел), filename (имя файла)
  4. Проверяем корректность ввода аргументов командной строки. Если аргументов недостаточно, выводим подсказку и завершаем работу программы. Если все в порядке, считываем число из аргумента и сохраняем его в переменной num
  5. Проверяем, что значение num больше нуля. Если это не так, выводим сообщение об ошибке и завершаем работу программы
  6. Открываем файл с помощью функции fopen. Если файл не может быть открыт, выводим сообщение об ошибке и завершаем работу программы
  7. Выделяем память под массив arr с помощью функции malloc. Размер массива определяется переменной num
  8. Инициализируем генератор случайных чисел с помощью функции srand и текущего времени
  9. Заполняем массив arr случайными числами в заданном диапазоне с помощью цикла for и функции rand
  10. Выводим заполненные числа на экран с помощью функции printf
  11. Записываем числа в файл с помощью цикла for и функции fprintf. Для записи используем функцию round для округления чисел до целых значений
  12. Освобождаем память, выделенную под массив arr, с помощью функции free
  13. Завершаем работу программы

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


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

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

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