Вывести в текстовый файл вертикальную зависимость значения числа от индекса - C (СИ)

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

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

Есть нормированный массив arrn (числа в нем целые от 0 до 80) нужно вывести в текстовый файл вертикальную зависимость значения числа от индекса написал функцию но она каждый раз начальное значение следующего элемента берет как конечное предыдущего как можно сделать чтобы столбики былы рядом?
    void file() 
    { 
        int k,u;
 
        FILE *f = fopen("Var13.txt", "w");
 
        for(int i = 0; i < (cnt+1); i++ )
        {
            for (k = 0; k < (arrn[i] + 1); k++) fprintf(f,"\n");
            for (u = 0; u < i+1 ; u++) fprintf(f," ");
            fprintf (f,"%c",0xB0);
        }

        fclose(f);
    
    };

Решение задачи: «Вывести в текстовый файл вертикальную зависимость значения числа от индекса»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
 
void Print(FILE* f, int array[], size_t count, size_t max)
{
    size_t i, j;
 
    for (i = 0; i < max; ++i)
    {
        for (j = 0; j < count; ++j)
        {
            fprintf(f, "%c", array[j] < (max - i) ? ' ' : '-');
        }
        fprintf(f, "\n");
    }
};
 
int main()
{
    int array[] = {2, 5, 0, 1, 6 , 8, 10};
 
    Print(stdout, array, sizeof(array) / sizeof(*array), 10);
 
    return 0;
}

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

Вывод в консоль начинается с номера 1:

  1. В функции Print происходит обход массива array с помощью двух вложенных циклов.
  2. Первый цикл (для i) отвечает за горизонтальное перемещение по строке.
  3. Второй цикл (для j) отвечает за вертикальное перемещение по столбцу.
  4. С помощью функции fprintf в файл f записывается символ либо пробел, либо дефис.
  5. Если значение array[j] меньше max - i, то в файл записывается пробел.
  6. Если значение array[j] больше или равно max - i, то в файл записывается дефис.
  7. После завершения второго цикла, с помощью функции fprintf в файл записывается символ новой строки \n.
  8. После завершения первого цикла, функция Print завершается.
  9. В функции main происходит вывод массива array с помощью функции Print в файл stdout (консоль).
  10. Размер массива array определяется как sizeof(array) / sizeof(*array) и передается в функцию Print для контроля количества выводимых элементов.
  11. Число 10 передается в функцию Print как максимальное значение индекса для вывода.
  12. Возвращаемое значение функции main равно 0, что означает успешный конец работы программы.

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


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

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

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