
Помогите, пожалуйста, написать программу на языке СПрограмма должна считывать последовательность 25
чисел из файла, заменить все элементы, которые меньше среднего арифметического этих элементов, на 0 и вывести новую последовательность в новый файл

Ответы на вопрос

main()
{
int x, s=0, n=0;
float sr;
FILE *fin, *fout;
fin = fopen("input.txt", "r");
fout = fopen("output.txt", "w");
while (fscanf(fin, "%d", &x) == 1) {
s+=x;
n++;
}
sr = 1.0*s/n;
fclose (fin);
fin = fopen("input.txt", "r");
while (fscanf(fin, "%d", &x) == 1) {
if (x < sr) x = 0;
fprintf (fout, "%d ", x);
}
fclose (fout);
fclose (fin);
}
Пример:
Файл input.txt:
21 45 87 61 90 43 70 15 33 58
Файл output.txt:
0 0 87 61 90 0 70 0 0 58



Задача: Написать программу на языке C для считывания последовательности 25 чисел из файла, замены всех элементов, которые меньше среднего арифметического этих элементов, на 0 и вывода новой последовательности в новый файл.
Для решения этой задачи вам понадобится использовать операции чтения и записи файлов, а также вычисление среднего арифметического.
Шаг 1: Открытие файлов Начнем с открытия исходного файла, из которого будем считывать последовательность чисел. Также создадим новый файл, в который будем записывать измененную последовательность. Вот код, который открывает файлы:
```c
#include
int main() { FILE *inputFile, *outputFile; inputFile = fopen("input.txt", "r"); outputFile = fopen("output.txt", "w"); // Проверка на успешное открытие файлов if (inputFile == NULL || outputFile == NULL) { printf("Ошибка при открытии файлов"); return 1; // Возвращаем код ошибки } // Ваш код для чтения и записи последовательности чисел // Закрываем файлы fclose(inputFile); fclose(outputFile); return 0; } ```
Шаг 2: Чтение последовательности чисел Теперь, когда файлы открыты, мы можем приступить к чтению последовательности чисел из исходного файла. Мы будем использовать цикл для считывания 25 чисел. Вот код, который считывает последовательность:
```c
#include
int main() { // Открытие файлов int sequence[25]; // Массив для хранения последовательности чисел // Чтение последовательности чисел из файла for (int i = 0; i < 25; i++) { fscanf(inputFile, "%d", &sequence[i]); } // Ваш код для замены элементов и записи новой последовательности // Закрытие файлов return 0; } ```
Шаг 3: Вычисление среднего арифметического и замена элементов Теперь, когда мы успешно считали последовательность чисел, мы можем вычислить среднее арифметическое и заменить элементы, которые меньше этого значения, на 0. Вот код, который выполняет эту операцию:
```c
#include
int main() { // Открытие файлов int sequence[25]; // Массив для хранения последовательности чисел // Чтение последовательности чисел из файла int sum = 0; double average; // Вычисление суммы всех элементов for (int i = 0; i < 25; i++) { sum += sequence[i]; } // Вычисление среднего арифметического average = (double)sum / 25; // Замена элементов, меньших среднего арифметического, на 0 for (int i = 0; i < 25; i++) { if (sequence[i] < average) { sequence[i] = 0; } } // Ваш код для записи новой последовательности в файл // Закрытие файлов return 0; } ```
Шаг 4: Запись новой последовательности в файл Теперь, когда мы заменили элементы, которые меньше среднего арифметического, на 0, мы можем записать новую последовательность в новый файл. Вот код, который выполняет эту операцию:
```c
#include
int main() { // Открытие файлов int sequence[25]; // Массив для хранения последовательности чисел // Чтение последовательности чисел из файла int sum = 0; double average; // Вычисление суммы всех элементов // Вычисление среднего арифметического // Замена элементов, меньших среднего арифметического, на 0 // Запись новой последовательности в файл for (int i = 0; i < 25; i++) { fprintf(outputFile, "%d ", sequence[i]); } // Закрытие файлов return 0; } ```
Шаг 5: Закрытие файлов В конце программы не забудьте закрыть открытые файлы с помощью функции `fclose()`. Вот код, который выполняет эту операцию:
```c
#include
int main() { // Открытие файлов int sequence[25]; // Массив для хранения последовательности чисел // Чтение последовательности чисел из файла int sum = 0; double average; // Вычисление суммы всех элементов // Вычисление среднего арифметического // Замена элементов, меньших среднего арифметического, на 0 // Запись новой последовательности в файл // Закрытие файлов fclose(inputFile); fclose(outputFile); return 0; } ```
Полный код программы:
```c
#include
int main() { FILE *inputFile, *outputFile; inputFile = fopen("input.txt", "r"); outputFile = fopen("output.txt", "w"); // Проверка на успешное открытие файлов if (inputFile == NULL || outputFile == NULL) { printf("Ошибка при открытии файлов"); return 1; // Возвращаем код ошибки } int sequence[25]; // Массив для хранения последовательности чисел // Чтение последовательности чисел из файла for (int i = 0; i < 25; i++) { fscanf(inputFile, "%d", &sequence[i]); } int sum = 0; double average; // Вычисление суммы всех элементов for (int i = 0; i < 25; i++) { sum += sequence[i]; } // Вычисление среднего арифметического average = (double)sum / 25; // Замена элементов, меньших среднего арифметического, на 0 for (int i = 0; i < 25; i++) { if (sequence[i] < average) { sequence[i] = 0; } } // Запись новой последовательности в файл for (int i = 0; i < 25; i++) { fprintf(outputFile, "%d ", sequence[i]); } fclose(inputFile); fclose(outputFile); return 0; } ```
Сохраните этот код в файл с расширением ".c" (например, "program.c"), затем скомпилируйте и запустите программу, и она выполнит заданную операцию с последовательностью чисел из файла "input.txt" и запишет результат в файл "output.txt". Убедитесь, что файлы "input.txt" и "output.txt" находятся в том же каталоге, где находится ваш исполняемый файл программы.


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili