Помещение информации в файл - 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; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с файлами, математикой и генерацией случайных чисел
- Определяем функцию main, которая принимает аргументы командной строки
- Инициализируем переменные: num (количество элементов), i (номер элемента), f (указатель на файл), arr (указатель на массив), a и b (границы для генерации случайных чисел), filename (имя файла)
- Проверяем корректность ввода аргументов командной строки. Если аргументов недостаточно, выводим подсказку и завершаем работу программы. Если все в порядке, считываем число из аргумента и сохраняем его в переменной num
- Проверяем, что значение num больше нуля. Если это не так, выводим сообщение об ошибке и завершаем работу программы
- Открываем файл с помощью функции fopen. Если файл не может быть открыт, выводим сообщение об ошибке и завершаем работу программы
- Выделяем память под массив arr с помощью функции malloc. Размер массива определяется переменной num
- Инициализируем генератор случайных чисел с помощью функции srand и текущего времени
- Заполняем массив arr случайными числами в заданном диапазоне с помощью цикла for и функции rand
- Выводим заполненные числа на экран с помощью функции printf
- Записываем числа в файл с помощью цикла for и функции fprintf. Для записи используем функцию round для округления чисел до целых значений
- Освобождаем память, выделенную под массив arr, с помощью функции free
- Завершаем работу программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д