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