
Помогите пожалуйста!!! (на языке программирования СИ!!) Даны действительные числа a1,....,an
(n<=150) удалить из последовательности те члены , поpядковые номеpа котоpых кpатны 4 , сохpанив пpежним поpядок оставленных членов.(За- мечание:удалить из существующего массива, а не создавать но- вый !).

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

#include <stdlib.h>
#include <time.h>
int main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int n, i, j;
do {
printf(" Введите n<=150. n = ");
scanf("%d", &n);
printf("\n");
if (n > 150) printf(" Слишком много!\n");
} while (n > 150);
float a[n];
srand(time(NULL));
printf(" ***Исходный массив ***\n");
for (i = 1; i <= n; i++)
{
a[i] = (float)rand() / RAND_MAX;
printf("%.3f ", a[i]);
}
printf("\n\n");
for (i = 4; i <= n; i+=3)
{
for (j = i; j < n; j++) a[j]=a[j+1];
--n;
}
printf(" ***Измененный массив ***\n");
for (i = 1; i <= n; i++) printf("%.3f ", a[i]);
return 0;
}



Для решения данной задачи в языке программирования Си можно воспользоваться следующим алгоритмом:
1. Создать массив a размером n и заполнить его действительными числами a1, a2, ..., an. 2. Создать переменную count и инициализировать ее нулем. Она будет использоваться для подсчета количества сохраненных элементов. 3. Создать цикл, который будет проходить по всем элементам массива a. 4. Внутри цикла проверить, является ли текущий индекс кратным 4 (index % 4 == 0). 5. Если индекс кратен 4, то увеличить переменную count на 1. 6. Если индекс не кратен 4, то сохранить текущий элемент массива a[count] = a[index] и увеличить переменную count на 1. 7. После завершения цикла, переменная count будет содержать количество сохраненных элементов. 8. Создать цикл, который будет проходить от count до n и заполнять оставшиеся элементы массива нулями (a[i] = 0). 9. Вывести на экран полученный массив.
Ниже приведен пример реализации данного алгоритма на языке программирования Си:
```c
#include
int main() { int n; printf("Введите количество элементов массива: "); scanf("%d", &n);
if (n > 150) { printf("Ошибка! Количество элементов должно быть не больше 150.\n"); return 0; }
float a[150]; printf("Введите элементы массива:\n"); for (int i = 0; i < n; i++) { scanf("%f", &a[i]); }
int count = 0; for (int i = 0; i < n; i++) { if (i % 4 != 0) { a[count] = a[i]; count++; } }
for (int i = count; i < n; i++) { a[i] = 0; }
printf("Измененный массив:\n"); for (int i = 0; i < n; i++) { printf("%f ", a[i]); }
return 0; } ```
Пользователю будет предложено ввести количество элементов массива и сами элементы. Затем программа выполнит указанные операции и выведет измененный массив на экран.


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







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