Определить колличество столбцов, не содержащих ни одного нулевого элемента - C (СИ)
Формулировка задачи:
Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента.
Характеристикой строки целочисленной матрицы назовём сумму ее положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соотвествии с ростом характеристик.
что не правильно?
#include <stdio.h> #include <math.h> #include <conio.h> #include <stdlib.h> void main() { int a[100][100], i, j, k, p, s[100], l, buf, m, n; printf("\n Vedite m, n \n"); // размер массива scanf("%d%d", &m, &n); k = 0; printf("\n Vvedite matricu \n"); for (i = 0; i < m; i++) for (j = 0; j < n; j++) scanf("%d", &a[i][j]); for (j = 0; j < n; j++) { p = 0; for (i = 0; i < m; i++) if (a[i][j] == 0) p = 1; if (p == 0) k++; } printf("\n k=%d \n", k); //кол-во столбцов не содержащих ни одного нулевого элемента for (i = 0; i < m; i++) s[i] = 0; for (i = 0; i < m; i++) for (j = 0; j < n; j++) if ((a[i][j] > 0) && (a[i][j] % 2 == 0)) s[i] = s[i] + a[i][j]; //сумма положит четных элементов строки (харктеристика) for (l = 0; l < m; l++) for (i = 0; i < m - 1; i++) { if (s[i] > s[i + 1]) { buf = s[i]; s[i] = s[i + 1]; s[i + 1] = buf; for (j = 0; j < n; j++) { buf = a[i][j]; a[i][j] = a[i + 1][j]; a[i + 1][j] = buf; //сортировка } } } for (i = 0; i < m; i++) { for (j = 0; j < n; j++) printf("%d ", a[i][j]); printf("\n"); } getch(); }
Решение задачи: «Определить колличество столбцов, не содержащих ни одного нулевого элемента»
textual
Листинг программы
Vedite m, n 3 4 Vvedite matricu 9 8 7 6 6 5 4 3 3 2 1 0 k=3 3 2 1 0 6 5 4 3 9 8 7 6