Поместить в массив 2, если в соответствующей строке исходной матрицы есть четный элемент, и 1, если нет - C (СИ)

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

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

Дана целочисленная (n*m) матрица. Построить одномерный символьный массив из n элементов, каждый элемент которого равен «2», если в соответствующей строке исходной матрицы есть хоть один четный элемент, и «1» - в противном случае.

Решение задачи: «Поместить в массив 2, если в соответствующей строке исходной матрицы есть четный элемент, и 1, если нет»

textual
Листинг программы
inline char is_even(int item) {
    return !(item % 2);
}
 
char has_even(int * a, size_t sz) {
    int *it, *end;
 
    for(it = a, end = a + sz; it != end; ++it) {
        if (is_even(*it)) return 1;
    }
    return 0;
}
 
void process(int ** mat, char * a, size_t n, size_t m) {
    int **it; **end;
    for(it = mat, end = mat + n; it != end; ++it) {
        *a++ = '1' + has_even(*it, m);
    }
}

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

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