Работа с текстовыми документами в С(Си) - C (СИ) (152684)

Узнай цену своей работы

Формулировка задачи:

Написать функция

int delitele(int x[], int pocetx, int y[], int k)

, от которых поле

X

копируются в массив с всех делителей числа, в том порядке, как найдено в массиве

X

и возвращает количество элементов массива

Y

. Pocetx аргумент задает количество элементов массива

X

. Можно предположить, что аргумент

Y

, будет достаточного размера, чтобы быть делителей чисел, которые находятся в массиве

X

.
C
Вызов вункции:

x = {4, 7, 10, 2, 3, 9, 6, 5, 8, 12} pocetx = 10 pocety = delitele(x, pocetx, y, 24);

Вывод:

pocety: 6 y: {4, 2, 3, 6, 8, 12}

Моя функция вроде все выводит, но программа не принемает Возможно ли как то по другому записать ее, я не понимаю что нужно изменить в моей функции или как подругому ее записать Заранее спасибо!!!

Решение задачи: «Работа с текстовыми документами в С(Си)»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int get_del(int *x, int n, int *y, int del)
{
    int m = 0, i;
    for (i = 0; i < n; i++)
        if (del % x[i] == 0)
            y[m++] = x[i];
    return m;
}
 
int main(int argc, char **argv)
{
    int n, i, *x, *y, m, del;
    printf("Input size of array:");
    scanf("%i", &n);
    printf("Input K:");
    scanf("%i", &del);
    printf("Input array:\n");
    x = (int*)calloc(n, sizeof(int));
    y = (int*)calloc(n, sizeof(int));
    for (i = 0; i < n; i++)
    {
        scanf("%i", &x[i]);
    }
    m = get_del(x, n, y, del);
    if (m > 0)
    {
        printf("pocety: %i\ny: {%i", m, y[0]);
        for (i = 1; i < m; i++)
            printf(", %i", y[i]);
        printf("}\n");
    }
    free(x);
    free(y);
    return 0;
}

Объяснение кода листинга программы

  1. В функции get_del идет поиск делителей числа del в массиве x. Если делитель найден, его значение сохраняется в массиве y.
  2. В функции main создается массив x заданного размера, который заполняется числами с клавиатуры.
  3. Затем создается массив y такого же размера, как и x, и инициализируется нулями.
  4. После этого вызывается функция get_del, которая находит все делители числа del в массиве x и сохраняет их в массиве y.
  5. Если делители найдены, выводится сообщение с их количеством и первым делителем.
  6. Затем выводится список найденных делителей.
  7. В конце программы освобождаются выделенные под массивы памяти.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.733 из 5
Похожие ответы