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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2023, 11:30   #1
pl300
 
Регистрация: 29.01.2023
Сообщений: 4
По умолчанию Удалить из массива С последний чётный элемент

Помогите дополнить код, не получается выполнить 4 задание.
#include <stdio.h>
#include <stdlib.h>
#include<locale.h>
#include<math.h>
#define n 4
#define m 2
int main(void)
{
setlocale(LC_ALL, "Russian");
int A[n];
int min = 0, i;
float f = 0, g = 0, t = 0;
printf("\nВведите элемент массива:\n");
for (i = 0; i < n; i++)
{
scanf_s("%d", &A[i]);

}
for (i = 0; i < n; i++)
{
printf("\nЭлемент массива: %d ", A[i]);

}
// задание 1 найти среднее арифметическое элементов массива
for (i = 0; i < n; i++)
{
t = t + A[i];
g++;
}
f = t / g;
//printf("\nСумма чисел %d ", f);
//printf("\nКоличество чиел %d ", f);
printf("\nСреднее арифмитическое: %f ", f);
// задание 2 индекс и минимальный эл в первой половине массива
for (i = 0; i < (n / 2); i++)
{
if (A[i] < A[min])
{
min = i;
}
}
printf("\nМинимальное число массива:[%d] = %d ", min, A[min]);
//задание 3 сформировать массив С в котором записать удвоенные положительные эл исходных массивов
printf("Введите %d значений:%\n", m);
int B[m], C[n + m], j = 0;

for (int i = 0; i < n; i++)
{
if (A[i] > 0)
{
C[j] = 2 * A[i];
j++;
}

}

for (int i = 0; i < m; i++)
{
scanf_s("%d", &B[i]);
if (B[i] > 0)
{
C[j] = 2 * B[i];
j++;
}

}
for (i = 0; i < j; i++)
{
printf("Элементы нового массива W:%d\n", C[i]);
}
// задание 4 Удалить из массива С последний чётный элемент

}
pl300 вне форума Ответить с цитированием
Старый 19.02.2023, 12:28   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Код:
int i;
for (i = n - 1; i >= 0; --i) if ((C[i] & 1) == 0) break;
if (i != -1) for (n--; i < n; ++i) C[i] = C[i + 1];
macomics вне форума Ответить с цитированием
Старый 19.02.2023, 12:46   #3
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 971
По умолчанию

Цитата:
Сообщение от pl300 Посмотреть сообщение
Удалить из массива С последний чётный элемент
в Си нет возможности удалить элемент из массива. Задание невыполнимо
Алексей1153 вне форума Ответить с цитированием
Старый 21.02.2023, 04:25   #4
Пётр Седов
Форумчанин
 
Регистрация: 26.10.2022
Сообщений: 119
По умолчанию

macomics, судя по коду «задание 3», в массиве C используются первые j элементов, а не n.
Пётр Седов вне форума Ответить с цитированием
Старый 21.02.2023, 09:45   #5
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Код:
int i;
for (i = j - 1; i >= 0; --i) if ((C[i] & 1) == 0) break;
if (i != -1) for (j--; i < j; ++i) C[i] = C[i + 1];
Цитата:
Сообщение от Пётр Седов Посмотреть сообщение
macomics, судя по коду «задание 3», в массиве C используются первые j элементов, а не n.
Судя по коду 3 задания достаточно просто удалить последний элемент т.к. все значения в массиве C четные.
Код:
j--; // И все

Последний раз редактировалось macomics; 21.02.2023 в 09:50.
macomics вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить последний нечетный элемент массива. София43 Помощь студентам 1 04.04.2020 11:02
как удалить последний элемент? Александр121 Python 4 25.08.2018 10:50
удалить последний элемент из списка.ООП-Классы Otar4ik Помощь студентам 1 02.02.2014 22:36
Одномерный массив. Необходимо заменить последний положительный элемент на второй элемент массива кумитэ Паскаль, Turbo Pascal, PascalABC.NET 1 19.12.2011 16:44
найти первый отрицательный элемент массива имеющий чётный номер (Delphi) Vanger Помощь студентам 5 25.01.2011 11:41