Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2022, 16:56   #1
sasha_03
Пользователь
 
Регистрация: 14.04.2022
Сообщений: 11
По умолчанию ДИНАМИЧЕСКИЙ МАССИВ + расширение массива

В текстовом файле INPUT.TXT записаны целые числа через пробел, возможно, в
несколько строк. Сформировать список (массив) этих чисел и найти среднее
арифметическое элементов списка. Полученное значение занести в текстовый
файл OUTPUT.TXT.

Вот код, который выполняет задание
Код:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *input, *output;
    int n, sum = 0, count = 0, k = 0;
    double average;
    
    input = fopen("INPUT.txt", "r");
    
    if ((input = fopen("INPUT.txt", "r")) == NULL) {
        printf("Ошибка при открытии файла INPUT.txt\n");
        return 0;
    }
    
    while (fscanf(input, "%i", &n) != EOF) {
        if(!input)    //чтобы не делал лишнего
        break;
        k += 1;       //определяем количество элементов в файле, чтобы потом выделить достаточно памяти под массив
    }
    
    int *massiv = (int*) malloc(k*sizeof(int));
    
    rewind(input);    //перематываем файл для повторного чтения
    
    for(int i = 0; i < k; i++) {
        fscanf(input, "%d", &massiv[i]);
        printf("massiv[%d] = %d\n", i, massiv[i]);
        sum += massiv[i];
        count += 1;
    }
    
    output = fopen("OUTPUT.txt", "w");
    average = (double) sum / count;
    fprintf(output, "Arithmetic mean = %lf", average);
    
    fclose(input);
    fclose(output);
    free(massiv);
    
    return 0;
}
Но нужно: Считывание из файла организовать в динамический массив. В связи с тем, что объем данных в файле заранее неизвестен, реализовать функционал расширения массива. Расширять массив эффективней не на один элемент, а кратно, в 1.5 или 2 раза.

Подскажите как переделать код, учитывая вышеперечисленные требования?

Последний раз редактировалось sasha_03; 10.05.2022 в 16:51.
sasha_03 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# Считывание массива из файла stodeer Помощь студентам 11 27.10.2016 17:06
Считывание файла в массив Stranger_465 Помощь студентам 2 01.06.2015 14:23
Считывание из файла чисел, сортировка массива с++ Tresk Помощь студентам 13 07.11.2010 20:01
Считывание массива из файла slKAHN Общие вопросы C/C++ 1 15.11.2009 15:01
Считывание массива из файла slKAHN Общие вопросы C/C++ 2 15.11.2009 14:01