Как записать массив в файл, что добавить? - C (СИ)

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

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

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<windows.h>
#define S 80
#define F 50
void write_file(char name[F]);
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    char fname[F];
    printf("Введiтьiм'я файлу:\n");
    scanf("%s%*c", &fname);
    write_file(fname);
 
    return 0;
}
 
void write_file(char name[F])
{
    int str[10][S];
    FILE *fp;

    if ((fp = fopen(name, "w+")) == NULL) {
        printf("Помилка при вiдкриттi файлу.\n");
        exit(1);
    }
    int i, j, x, min, temp, A[6][9];

    srand(time(NULL));
    for (i = 0; i < 6; i++, putchar('\n'))
    {
        for (j = 0; j < 9; j++)
        
            printf("%4d", A[i][j] = rand() % 999);

    fprintf(fp, " %4d %4d %4d %4d %4d %4d %4d %4d %4d\n %4d %4d %4d %4d %4d %4d %4d %4d %4d\n %4d %4d %4d %4d %4d %4d %4d %4d %4d\n %4d %4d %4d %4d %4d %4d %4d %4d %4d\n %4d %4d %4d %4d %4d %4d %4d %4d %4d\n %4d %4d %4d %4d %4d %4d %4d %4d %4d\n", A[0][0], A[0][1], A[0][2], A[0][3], A[0][4], A[0][5], A[0][6], A[0][7], A[0][8], A[1][0], A[1][1], A[1][2], A[1][3], A[1][4], A[1][5], A[1][6], A[1][7], A[1][8], A[2][0], A[2][1], A[2][2], A[2][3], A[2][4], A[2][5], A[2][6], A[2][7], A[2][8], A[2][0], A[2][1], A[2][2], A[2][3], A[2][4], A[2][5], A[2][6], A[2][7], A[2][8], A[3][0], A[3][1], A[3][2], A[3][3], A[3][4], A[3][5], A[3][6], A[3][7], A[3][8], A[3][0], A[3][1], A[3][2], A[3][3], A[3][4], A[3][5], A[3][6], A[3][7], A[3][8], A[4][0], A[4][1], A[4][2], A[4][3], A[4][4], A[4][5], A[4][6], A[4][7], A[4][8]);

    int B = max(A[0][0], A[0][1], A[1][1], A[1][2], A[3][4], A[3][5], A[4][5], A[4][6], A[5][7], A[5][8], A[6][8], A[6][9]);
    
    printf("%d %d %d %d %d %d %d %d %d %d   ", A[0][0], A[0][1], A[1][1], A[1][2], A[3][4], A[3][5], A[4][5], A[4][6], A[5][7], A[5][8], A[6][8], A[6][9]);
    fprintf(fp, "\n%d %d %d %d %d %d %d %d %d %d \n", A[0][0], A[0][1], A[1][1], A[1][2], A[3][4], A[3][5], A[4][5], A[4][6], A[5][7], A[5][8], A[6][8], A[6][9]);
    printf("\n");
    
    printf("%d ---- MAX element\n", B);
    printf("\n");
    fprintf(fp, "%d ---- MAX element\n", B);
    fclose(fp);
}
Нужно записать вот этот массив
 srand(time(NULL));
    for (i = 0; i < 6; i++, putchar('\n'))
    {
        for (j = 0; j < 9; j++)
        
            printf("%4d", A[i][j] = rand() % 999);
в файл.
fprintf(fp, " %4d %4d %4d %4d %4d %4d %4d %4d %4d\n %4d %4d %4d %4d %4d %4d %4d %4d %4d\n %4d %4d %4d %4d %4d %4d %4d %4d %4d\n %4d %4d %4d %4d %4d %4d %4d %4d %4d\n %4d %4d %4d %4d %4d %4d %4d %4d %4d\n %4d %4d %4d %4d %4d %4d %4d %4d %4d\n", A[0][0], A[0][1], A[0][2], A[0][3], A[0][4], A[0][5], A[0][6], A[0][7], A[0][8], A[1][0], A[1][1], A[1][2], A[1][3], A[1][4], A[1][5], A[1][6], A[1][7], A[1][8], A[2][0], A[2][1], A[2][2], A[2][3], A[2][4], A[2][5], A[2][6], A[2][7], A[2][8], A[2][0], A[2][1], A[2][2], A[2][3], A[2][4], A[2][5], A[2][6], A[2][7], A[2][8], A[3][0], A[3][1], A[3][2], A[3][3], A[3][4], A[3][5], A[3][6], A[3][7], A[3][8], A[3][0], A[3][1], A[3][2], A[3][3], A[3][4], A[3][5], A[3][6], A[3][7], A[3][8], A[4][0], A[4][1], A[4][2], A[4][3], A[4][4], A[4][5], A[4][6], A[4][7], A[4][8]);
вот такой отрывок кода работает, но не выглядит хорошо.. вот и не знаю как проще записать этот отрывок кода.

Решение задачи: «Как записать массив в файл, что добавить?»

textual
Листинг программы
for (i = 0; i < 6; i++, putchar('\n'),fputc('\n', fp)) {
    for (j = 0; j < 9; j++) {
        printf("%4d", A[i][j] = rand() % 999);
        fprintf(fp, "%4d ", A[i][j]);
    }
}

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

  1. Объявлены две переменные i и j типа int, которые будут использоваться в двух вложенных циклах.
  2. Внешний цикл for выполняется 6 раз. При каждой итерации внутреннего цикла, формируется строка из 9 чисел, которая будет записана в файл.
  3. Внутренний цикл for выполняется 9 раз для каждого элемента массива A[i].
  4. В каждой итерации внутреннего цикла, число из массива A[i][j] выводится на экран с помощью функции printf, и записывается в файл с помощью функции fprintf.
  5. Каждое число в строке записывается через пробел.
  6. После каждой строки чисел, в файл записывается символ новой строки '\n'.
  7. Функция rand() % 999 используется для генерации случайного числа от 0 до 999, которое затем присваивается элементам массива A[i][j].

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

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