Исправления кода во функции С(Си)! - C (СИ)

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

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

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

int

делителей

(int [], int pocetx, int у [], Int k)

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

X

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

X

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

Y

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

X

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

Y

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

X

.

Пример вызова: 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}

Вот мой код...
#include <stdio.h>
 
int delitele(int x[], int pocetx, int y[], int k)
 
int main()
{
  int x[10] = {4, 7, 10, 2, 3, 9, 6, 5, 8, 12};
  int pocetx = 10;
  int y[10];
  int i, pocety = delitele(x, pocetx, y, 24);
  printf("pocety: %d\ny: {", pocety);
  for (i = 0; i < pocety; i++)
  {
    if (i > 0)
      printf(", ");
    printf("%d", y[i]);
  }
  printf("}\n");
  return 0;
}

Помогите пожалуйста!!! Заранее спасибо!!!

Решение задачи: «Исправления кода во функции С(Си)!»

textual
Листинг программы
#include <stdio.h>
 
int func(int x[], int size, int y[], int k) {
    int cnt = 0;
 
    while (size-- > 0) {
        if (k % *x == 0) {
            *y++ = *x;
            cnt++;
        }
        x++;
    }
 
    return cnt;
}
 
int main() {
    int x[10] = {4, 7, 10, 2, 3, 9, 6, 5, 8, 12};
    int y[10];
    int pocetx = 10, pocety, i;
 
    pocety = func(x, pocetx, y, 24);
 
    printf("pocety: %d\ny: {", pocety);
    for (i = 0; i < pocety; ++i) {
        printf("%d, ", y[i]);
    }
    printf("%s}\n", pocety ? "\b\b" : "");
 
    return 0;
}

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

  1. Включаем заголовочный файл stdio.h для использования функций ввода-вывода
  2. Функция func принимает три аргумента: массив x, его размер size и массив y, инициализированный как пустой массив
  3. Внутри функции func инициализируется переменная cnt = 0 для подсчета количества найденных элементов
  4. Используется цикл while для перебора всех элементов массива x. Условие цикла: size > 0
  5. Внутри цикла проверяется, делится ли k на текущий элемент массива x без остатка. Если да, то значение этого элемента копируется в массив y и увеличивается счетчик cnt
  6. После проверки каждого элемента массива x, указатель x увеличивается на 1, чтобы перейти к следующему элементу
  7. По завершении цикла, функция возвращает значение переменной cnt
  8. В функции main создается массив x с десятью элементами и инициализируется значениями {4, 7, 10, 2, 3, 9, 6, 5, 8, 12}
  9. Создается массив y, также с десятью элементами, который будет содержать найденные значения
  10. Инициализируется переменная pocetx со значением 10, которая представляет размер массива x
  11. Вызывается функция func с аргументами x, pocetx, y, 24
  12. Результат функции func сохраняется в переменной pocety
  13. Выводится сообщение pocety: %d\ny: { и начинается цикл for для вывода значений массива y
  14. В каждой итерации цикла выводится значение y[i] через запятую, пока не будут выведены все значения
  15. После завершения цикла выводится символ }\n
  16. Функция main возвращает 0, что означает успешное завершение программы

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


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

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

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