Определить колличество столбцов, не содержащих ни одного нулевого элемента - 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

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

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