Удалить из нее все элементы, значение которых больше среднего арифметического - C (СИ)
Формулировка задачи:
Задание: Дана последовательность х1...х20. Удалить из нее все элементы, значение которых больше среднего арифметического.
int main()
{
FILE *fp;
fp = fopen("new1.cpp", "w");
int i, j, n = 20, b[20], k = 0, t=0;
float x, summa = 0, srednee = 0;
for (i = 0; i < n; i++)
{
x = -5 + 0.001*rand();
printf("\n x=%5.2f ", x);
fprintf(fp, "%5.2f", x);
summa += x;
}
srednee = summa / n;
printf("\n summa=%f", summa);
printf("\n srednee=%f", srednee);
fclose(fp);
fp = fopen("new1.cpp", "r+");
for (i = 0; i < n; n++)
{
fscanf(fp, "%5.2f", "&x");
fseek(fp, i * 5, 0);
if (x < srednee)
{
for (k = i; k < n-1; k++)
{
fseek(fp, (k + 1) * 5, 0);
fscanf(fp, "%f", &x);
fseek(fp, k * 5, 0);
fprintf(fp, "%f", x);
printf("\n x = %5.2f", x);
}n--; i--;
}
}
return 0;
}Решение задачи: «Удалить из нее все элементы, значение которых больше среднего арифметического»
textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
enum { SIZE = 20 };
int main(int argc, char **argv)
{
FILE *f = fopen("new1.cpp", "w");
if (!f){
perror("File error");
exit(EXIT_FAILURE);
}
srand(time(0));
for (int i = 0; i < SIZE; ++i){
float x = -5 + 0.001 * rand();
printf("%5.2f\n", x);
fprintf(f, "%5.2f ", x);
}
fclose(f);
return EXIT_SUCCESS;
}
Объяснение кода листинга программы
Код генерирует 20 случайных чисел в диапазоне от -5 до 0.05 и выводит их в консоль, записывает в файл new1.cpp. Затем программа закрывает файл и возвращает 0, что означает успешное выполнение.