С клавиатуры ввести массив целых чисел
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define N 25
int main()
{
system("chcp 1251");
int arr[N];
int* p1,
* p2,
* pel;
p1 = &arr[0],
p2 = p1 + N - 1;
int k = 0;
int arr2[N],
* parr2,
* parr3;
printf("\nВведіть елементи (не більше %d), кінець введення – "
"довільний символ \n", N);
while (k < N) {
if (scanf("%d", arr + k) == 0)
break;
k++;
}
parr2 = &arr2[0];
parr3 = parr2 + N - 1;
for (pel = arr+1; pel < p2; pel++)
pel % p1 == 0;
parr2 = pel;
for (; parr2 < parr3; parr2++)
printf("%4d", *parr2);
return 0;
}
С клавиатуры ввести массив целых чисел . Сформировать новый массив из тех элементов введенного массива, которые целочисленных делятся на его первый элемент. напечатать созданный массив или вывести сообщение об отсутствии таких элементов.
Не очень понимаю как делать но что-то попытался сделать
Ответы (1 шт):
Автор решения: Павел Ериков
→ Ссылка
- Если у вас цикл идет строго до
p2, то должно быть такp2 = p1 + Nбез добавления единицы. - Вот пример кода, после введения чисел, с комментариями:
//Указатель на начало массива arr2 parr2 = &arr2[0]; //Указатель на k элемент, т.к. k - кол-во введенных чисел (< N) parr3 = parr2 + k; //указатель на начало массива arr p1 = &arr[0]; //Указатель на k элемент p2 = p1 + k; //Кол-во элементов целочисленно делящихся на первый элемент int count = 0; //Проходим по всем введенным элементам for (pel = p1; pel < p2; pel++) { if (*pel % arr[0] == 0) { //Если делится, то вносим элемент в массив arr2 *parr2 = *pel; ++parr2; ++count; } } //И выводим элементы массива arr2 parr2 = &arr2[0]; parr3 = parr2 + count; for (; parr2 < parr3; parr2++) printf("%4d", *parr2);